快捷搜索:  网络  渗透  后门  CVE  扫描  木马  黑客  as

挖洞经验 | 行使暗码重置功能完成账号挟制

近来,我参加了某平台邀请的漏洞测试项目,在其中发现了一个独特的账号挟制漏洞,全部漏洞发现过程无比不测也无比荣幸,通过暗码重置功能就能完成账号挟制,在此我就把它写成 writeup 分享出来。由于测试项目的失密以及隐衷绳尺,抱歉截图太少,且下文中触及的网站域名部分我已作了编辑隐躲,敬请见谅。

从Blind XSS说起

在对一个域名进行前期踩点时,我有时发现一个前端应用,它有一个是很旧的主界页,但登录表单没有使用HTTPS。我想,要是连登录页面的证书都没有,那应该还会存在什么懦弱性呢?因而我当真检查并提议测试要求,尝试在该页面网站注册一个新账号。可惜的是,必须需要一个后缀为@company.com的公司邮箱,或者注册帐号需要后台治理员验证批准,才能成功实现注册。

考虑到这一点,我想我应该测试一下该前端应用是否存在Blind XSS漏洞,因而我在登录的“名字”以及“姓氏”字段中提交了有用的XSS测试载荷,当我单击“提交”按钮时,收到下列错误新闻,这让我感到不测。我没把blind XSS测试载荷一块儿截屏,但全部过程返归了下列错误响应:

行使暗码重置功能完成账号挟制

测试盲注漏洞(Blind SQLi)

好吧,既然如许,那我来试试盲注漏洞(Blind SQLi)吧。通常,出现这种错误响应信息后,我会第一时间想到用Sqlmap来测试一下注入漏洞。但遗憾的是,可能因为不能使用同一个邮箱两次注册账号,此处提议的账号注册式的SQL注入要求没能成功响应。另外,在Sqlmap中存在一个选项配置,可以在账号注册需要的邮箱地址中添加一个数字,形成特殊的注册要求,工控黑客 ,然则我发现手动来做速率会更快。就如许,我反反复复试来试去,终极也只能得到一些无效的语法响应。好在,在同伙Gerben Javado的帮助下,我成功组织了一条有用的账号注册式SQL要求,其响应提示,该注册账号已成功创建,但却需要守候后台激活。

行使暗码重置功能完成账号挟制

既然能如许,那这肯定存在盲注漏洞(Blind SQLi),但由于我没法从测试页面中查看到要求响应效果,我就转而使用下列Payload来继续测试:

"-IF(MID(@@version,1,1) = 5, sleep(10), "")-"

该Payload下,页面在10秒过后发生响应,其中MID(@@version,1,1) = 5来测试后端MySQL数据库版本是否为5以上。另外,我还在此发现了一个反射型XSS。

完成账号挟制

现在,可以组织有用的账号注册式SQL要求,也能形成有用的盲注漏洞(Blind XSS ),为此,我始终用XSSHunter来测试看看能否发现新的XSS点,几经测试已经是深夜,困的不行,只能来日诰日再战。第二天,我当真查看测试记录,意想到接下来可以从3个方面深入:

在第一张MySQL的错误响应截图中,在底中可以看到它提示“Please contact XXXXXX and let him know you’re having trouble.“,这最少能说明我给出的注册需要邮箱是有用的;

在第二张账号注册式的SQL要求截图中,其中提示,网站体系后台会向注册邮箱发送一封验证邮件;

另外,可以对网站体系的暗码重置功能进行一些后续阐发。

综合以上三方面情形,我决定测试一下其暗码重置功能。由于我提交了上述发现的盲注漏洞,目标公司告知我,曾经按计划,这个网站应用原先是要被移除下线的,为此他们让我不用担心危害后果,铺开四肢行为去测试。另外,征得目标公司同意,我获患了一个有用的公司名后缀邮箱valid_user_address@company.com,以便用于后续测试。

在暗码重置功能中,唯一的请求是有一个有用的公司名后缀电子邮箱,它会向用户发送一封电子邮件,该邮件内容详细不详。我先来测试它是否易受HTTP参数污染攻击( HTTP Parameter Pollution),以后是SQL注入漏洞,但好像都不行。然后我想,要是体系后台正在向我提供的邮箱地址发送验证性邮件,那么我是否可以尝试,使用SMTP标头注入法( SMTP header injection)将我本人配置的邮箱地址,添加成抄送或密件抄送的另外一个邮箱地址,如许我就能收到与提供邮箱一样的验证邮件了。

SMTP头注入漏洞是在未进行充分审查过滤的情形下,用户输入被放入电子邮件标头中,从而使攻击者能够注入具有任意值的其他标头。此举动可用于向第三方发送电子邮件副本、附加病毒、提供收集钓鱼攻击,并经常更改电子邮件的内容。典型应用就是,垃圾邮件发送者通常会以这类方式,行使存在漏洞的攻击公司名声,来增添其电子邮件合法性。要是电子邮件包含了一些攻击者不该看到的敏感信息(如暗码重置令牌等),则此问题就无比严重。—–Portswigger

终极,我形成的抄送命令以下

valid_user_address%40company.com%0D%0ABCC%3Ame%40me.com%0D%0A

URL解码以后是如许的:

valid_user_address@company.com

BCC:me@me.com

其中,me@me.com是我本人提供的邮箱,即抄送副本的第二个邮箱地址。而valid_user_address@company.com是我收罗公司获取的有用公司邮箱地址。

上述抄送命令提交以后,我立即查看了我的邮箱me@me.com,看看是否有某种暗码重置令牌或别的可进行暗码重置的东东,当然,我希翼这类重置机制最佳是没有别的类型的两重验证(2FA)。让我惊喜的是,我邮箱收到的电子邮件内容以下:

行使暗码重置功能完成账号挟制

就如许,网站以明文情势向我发送了用户暗码,我甚至可以通过登录确认该暗码仍旧有用。终极,我向项目组提交了我的测试讲演,另外,结合之前发现的Blind XSS,我还发现了更多的SQL注入漏洞,以后,目标测试公司也下线停用了该网站。

*参考来源:jr0cp7,FreeBuf 小编 clouds 编译,

您可能还会对下面的文章感兴趣: