(SRC漏洞挖掘四)短信发送功能点
2023-9-12 22:32:5 Author: mp.weixin.qq.com(查看原文) 阅读量:12 收藏


并发短信轰炸

在发送验证码中有图形验证码或者其他验证时并发手段是常用的一种绕过思路,不仅仅在短信发送能够利用并发手段,领取优惠券、签到等功能点都能够利用并发手段。点击发送验证码并抓包安装并发插件先不要放掉该数据包,把发送到burp插件turbo intruder里

然后选择race.py这个专门的测试并发漏洞的脚本,并且自行手动在请求包里添加req: %s字段后,就可以开始攻击了:

成功并发

造成短信轰炸

时间戳绕过

很多发送短信验证码的时候都会出现time类似这个参数对于这类参数有什么作用。对于这类参数大多数都是使用时间戳来进行验证,我们只需要将时间提前即可绕过,比如抓到的包的时间是08:09,我直接更改为08:20,这边我也挖过非常多这类漏洞。还有就是他会比时间戳多出一两个数字

时间截在线转换地址:

https://www.matools.com/timestamp

加一些数据绕过

+86 不知道你是否会发现很多发送短信验证码的前面都会有+86这个,+86是中国国际区号,用于拨打国际电话,而我们可以利用这一点在+86的后面再添加+86来实现绕过 加空格

删除cookie

有的是对cookie进行验证,还有就是你得观察一下数据包中的其他参数如type之类的,有的在type参数后面随便加一个数字字母同样也能绕过,这些得跟实际数据包进行观察与尝试。

逻辑绕过

对于网站将数据加密或者签名的短信验证功能点,在无法获取签名和加密密钥的情况下我们要如何来造成短信轰炸呢?这边是研究的一个新思路就是在正常情况下我们使用下面的数据包无论是用上面的哪种方式都不可以造成短信轰炸,并且每次点击发送验证码并抓包数据包都在发送变化。这边可以利用以下方式:点击发送验证码并抓包将数据包放到reperter模块,并丢弃该数据包(一定不要放包forward),然后再次回到网站使用该手机号进行发送验证码并重复刚刚的步骤

这样就获取到多个进行了签名或加密的数据包,一次快速点击go,看能否发送多条短信,如果能够就说明存在短信轰炸漏洞

对于发送的四位验证码可爆破的话那就是高危可以实现任意用户登陆注册,普通四位验证码爆破我就不说了,这里我遇到了一个有时间限制爆破的漏洞,这类漏洞提交的时候要怎么说是很关键的(在我们提交漏洞时要善于用详情说出自己漏洞的危害,对一些限制条件进行有利说明,这样漏洞才能高危严重呀)

「漏洞说明:」

发送的验证码只有四位,并且在输入验证码错误次数没有限制,只有时间限制,在两分钟内最少都可以爆破一千次以上(那么只要攻击者一直尝试总有一次在自己的爆破范围内,并且时间不会太长,最多一个小时就可以修改一个用户的密码)造成任意用户登录

成功爆破

生成四位验证码和六位验证码脚本如下:

python四位手机号验证码生成

for i in range(10000):
    if i<10:
        i = '000'+str(i)
    elif 10<=i and i<100:
        i ='00'+str(i)
    elif 100<=i and i<1000:
        i ='0'+str(i)
    else:
        i=str(i)
    with open('4位手机验证码.txt''a') as f:
        f.write(i+"\n")

python六位手机号验证码生成

for i in range(1000000):
    if i<10:
        i = '00000'+str(i)
    elif 10<=i and i<100:
        i ='0000'+str(i)
    elif 100<=i and i<1000:
        i ='000'+str(i)
    elif 1000<=i and i<10000:
        i ='00'+str(i)
    elif 10000<=i and i<100000:
        i ='0'+str(i)
    else:
        i=str(i)
    with open('6位手机验证码.txt''a') as f:
        f.write(i+"\n")

登录点输入手机发送验证码并抓包

在该手机号后再添加,(逗号)和一个手机号(抓包修改phone的参数值为"phone=手机号1,手机号2")此时攻击者就能同时收到他人手机号的验证码,从而实现任意用户登录,同理在邮箱验证功能点也可能存在该漏洞,还有一种思路是将整个参数和电话号码再添加一遍:"phone=手机号1&phone=手机号2"

在正常逻辑下登录一个系统需要一个手机验证码,该验证码用过后就不能用了,但是换个浏览器使用这个验证码依然能够登录说明存在验证码复用漏洞

输入手机号点击获取验证码、手机收到验证码如下:

输入验证码登录成功后换个浏览器,再次使用该手机号验证码登录、发现发来的验证码还是上次使用的验证码、且输入该验证码也能登录、正常情况下验证码用过是不能再用的。

填写个人信息后点击发送验证码并抓包

发现验证码在前端显示

并且验证码内容可控

收到短信如下:

如果你是一个长期主义者,欢迎加入我的知识星球(优先查看这个链接,里面可能还有优惠券),我们一起往前走,每日都会更新,精细化运营,微信识别二维码付费即可加入,如不满意,72 小时内可在 App 内无条件自助退款

往期回顾

2022年度精选文章

SSRF研究笔记

xss研究笔记

dom-xss精选文章

Nuclei权威指南-如何躺赚

漏洞赏金猎人系列-如何测试设置功能IV

漏洞赏金猎人系列-如何测试注册功能以及相关Tips

福利视频

笔者自己录制的一套php视频教程(适合0基础的),感兴趣的童鞋可以看看,基础视频总共约200多集,目前已经录制完毕,后续还有更多视频出品

https://space.bilibili.com/177546377/channel/seriesdetail?sid=2949374

技术交流

技术交流请加笔者微信:richardo1o1 (暗号:growing)


文章来源: https://mp.weixin.qq.com/s?__biz=MzIzMTIzNTM0MA==&mid=2247491954&idx=1&sn=c4719882a8574bcf638c6b6fc75f1ef3&chksm=e8a5eb11dfd2620712428adfb71564be16cd653d9f62430c3b8742fe3162fafb2c5416d411b3&scene=58&subscene=0#rd
如有侵权请联系:admin#unsafe.sh