(SRC漏洞挖掘四)短信发送功能点

admin 2023年8月1日12:06:03评论44 views字数 2309阅读7分41秒阅读模式
免责声明
由于传播、利用本公众号红云谈安全所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,公众号红云谈安全及作者不为承担任何责任,一旦造成后果请自行承担!本文为连载文章欢迎大家关注红云谈安全公众号!


短信轰炸

并发短信轰炸

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

(SRC漏洞挖掘四)短信发送功能点然后选择race.py这个专门的测试并发漏洞的脚本,并且自行手动在请求包里添加req: %s字段后,就可以开始攻击了:

(SRC漏洞挖掘四)短信发送功能点

成功并发

(SRC漏洞挖掘四)短信发送功能点

造成短信轰炸(SRC漏洞挖掘四)短信发送功能点

时间戳绕过

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

(SRC漏洞挖掘四)短信发送功能点

时间截在线转换地址:

https://www.matools.com/timestamp

(SRC漏洞挖掘四)短信发送功能点

加一些数据绕过

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

删除cookie

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

逻辑绕过

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

(SRC漏洞挖掘四)短信发送功能点

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

(SRC漏洞挖掘四)短信发送功能点

四位验证码爆破漏洞(高危)

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

「漏洞说明:」

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

成功爆破(SRC漏洞挖掘四)短信发送功能点

(SRC漏洞挖掘四)短信发送功能点生成四位验证码和六位验证码脚本如下:

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")

逻辑漏洞(高危)

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

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

(SRC漏洞挖掘四)短信发送功能点

验证码复用

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

(SRC漏洞挖掘四)短信发送功能点输入手机号点击获取验证码、手机收到验证码如下:

(SRC漏洞挖掘四)短信发送功能点输入验证码登录成功后换个浏览器,再次使用该手机号验证码登录、发现发来的验证码还是上次使用的验证码、且输入该验证码也能登录、正常情况下验证码用过是不能再用的。

(SRC漏洞挖掘四)短信发送功能点

验证码前端显示和验证码内容可控漏洞

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

(SRC漏洞挖掘四)短信发送功能点

发现验证码在前端显示

(SRC漏洞挖掘四)短信发送功能点

并且验证码内容可控

(SRC漏洞挖掘四)短信发送功能点

收到短信如下:

(SRC漏洞挖掘四)短信发送功能点


原文始发于微信公众号(红云谈安全):(SRC漏洞挖掘四)短信发送功能点

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年8月1日12:06:03
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   (SRC漏洞挖掘四)短信发送功能点http://cn-sec.com/archives/1924899.html

发表评论

匿名网友 填写信息