原创 安全小姿势 安全小姿势
微信号 www_sqlsec_com
功能介绍 国光的信息安全漫谈,分享个人在信息安全领域的思考和心得体会,探讨网络安全问题和解决方案。
__发表于
收录于合集 #安全小姿势 13个
本文首发 Web 安全社区: https://web.sqlsec.com/thread/290 转载请注明出处!
废话不多说,请看 VCR:
POST /xxx/SendMobileSMS HTTP/1.1
Host: x.x.x.x
...
{
"xxx": "xxxxxxx",
"mobile":"17711111111,17722222222"
}
很显然问题出在了 mobile 的字段,后端的接口没有校验手机号的格式(大多数都是前端校验) ,我们可以使用,
来拼接另一个手机号,那么此时会发生什么事情呢?
没错,两个手机号都同时收到了验证码,而且 验证码的内容一模一样 !
其实这种情况不算是小众的特例,国光我在实际的渗透测试中,遇到不少次这种情况了,尤其是一些金融企业更容易出现这种安全风险。
那么此时肯定有网友好奇了,这样同时收到验证码有啥危害呢?那么且听我一一道来。
讲漏洞利用前,我们最好要了解一下漏洞的成因,磨刀不误砍柴工!
请教了交流群里的 Java 开发老哥,原来是短信接口供应商的问题,下面以国内的一个短信接口文档为例,可以看到官方就是使用逗号来进行批量发送的:
好了,下面开始说一下这个风险可以导致哪些安全问题吧。
顾名思义,这种就是批量发送接口,用来做横向短信轰炸很合理,虽然当前我们的数据包使用了其他字段参数来进行校验,一个数据包只能使用一次,不可重复使用:
而且每次调用短信接口前,需要人工过一下验证码,才可以正常调用,但是此时利用我们上述的姿势,直接使用逗号拼接多个手机号看看:
可以看到 4 个手机号同时接收到了短信:
至此,批量横向短信轰炸漏洞利用证明成功。
此漏洞对于企业来说的危害如下:
- 利用这个短信接口去骚扰其他用户,对企业造成舆情等不好的影响。
- 消耗短信接口的资源,轻微的话会造成金钱损失,严重的话会导致接口达上限不能使用,严重影响业务
既然可以通过逗号拼接的手机号可以收到和前面手机号一模一样的验证码,那么就可以伪造前面的手机号来做各种各样的事情了,比如下图这种利用这种漏洞来任意用户注册,黑客使用 13811111111 的手机号即可窃取到 13822222222 的验证码,然后即可伪造成 13822222222 的身份来注册网站用户,达到伪造任意用户注册的危害:
同理下面的其他接口也存在这种安全风险:
- 短信验证码登录的接口
- 用户根据短信验证码重置密码的接口
- ......省略(大家自行结合实际漏洞场景)
如果配合业务逻辑漏洞利用证明成功的话,那么这种短信轰炸的中危漏洞即可瞬间变成高危甚至严重漏洞,网友们下次遇到这种场景记得测试看看哦,说不定有惊喜呢。
预览时标签不可点
微信扫一扫
关注该公众号
知道了
微信扫一扫
使用小程序
取消 允许
取消 允许
: , 。 视频 小程序 赞 ,轻点两下取消赞 在看 ,轻点两下取消在看