危险漫步博客
新鲜的“黑客思维”就是从全新的角度看待黑客技术,从更高的层面去思考;专注于黑客精神及技术交流分享的独立博客。
文章2311 浏览22165657

利用密码重置功能实现账号劫持

预言


最近接触到了一个新的圈子,是一个漏洞渗透测试发烧友组成的比较符合危险漫步的胃口,为了照顾新手所以写的可能比较啰嗦,老鸟们不要介意~


漏洞可以说是无处不在的,WEB服务器,浏览器中的请求应答格式,浏览器扩展程序等都能够见到他的身影。不得不说受众面太广也不是什么好事,因为这样很容易成为大家的攻击目标。而且攻击它的姿势五花八门,站着,坐着,蹲着,就算是躺着都很容易中枪,接下来我就给大家好好的说一说为什么老是有人会躺枪。


先从XSS说起吧


既然和一群发烧友在一起玩,那就得拿出点压箱底的手艺真刀真枪的干一把大家才会认可你,而且大家的兴趣爱好我也喜欢,所以就只能小露一手了


OK,步入正题,我在踩点的时候很偶然的发现了一个前端应用,真正很偶然,我都没想会就这样就偶遇了,这是一个我在十年前就嫌太老而弃之不用的主界面,有意思的是登录表单页面没有使用HTPS。当时我就寻思了,你说连个登录页面的证书都没有,你让我怎么评价!完全没法说啊~于是我就开始一本正经的检查了起来,还时不时的发出一段测试请求,如果能够在在这个页面网上注册一个新帐号的话万事齐备了。但是注册新账号有限制,必须要有满足条件的公司邮箱,或者网站的管理员同意才可以。


由于这个原因我决定吧进攻路线修改为下三路,也就是测试一下它是否存在Blind XSS漏洞,于是我就在登录名字段中提交了有效的XSS测试载荷,当提交成功之后发现有错误提示,这让我深感意外。



收到小挫之后只能再次挑战策略,下三路走不通的话咱就换个路子,走中三路,测试一下盲注漏洞,接下来在我的不懈努力之下终于成功的构造出了一条有效的SQL请求,这是一个帐号注册式请求,结果回应却是注册成功,但是需要在后台激活,娘匹西。



不也不是完全没有收获每一位这样能够成功的话就说明是的确存在盲注漏洞的


现在再次转换一下战术策略,利用Payload来继续测试:


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


Payload发出之后,十秒钟就有了回应,其中MID(@@version,1,1) = 5来测试后端MySQL数据库版本是否为5以上。另外,我还在此发现了一个反射型XSS。


现在,就可以构造出一个有效的账号来进行注册式SQL请求了,也能够形成有效的盲注漏洞,经过一番测试之后局面就豁然开朗了,因为我原本就对网站系统的密码重置功能十分了解,在加上之前测试记录反馈给我的信息,所以我决定测试一下其密码重置功能,利用我之前生成注册的帐号,没费什么功夫就直接完成了帐号劫持(危险漫步的这一系列渗透测试行为是得到目标公司许可的)。


具体实现的过程也很简单:


形成的抄送命令如下


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


URL解码之后是这样的:


valid_user_address@xxxxxxxxxxxxxxxxxxx.com


BCC:me@me.com