验证码漏洞利用技巧总结

admin 2024年7月4日22:15:16评论12 views字数 2927阅读9分45秒阅读模式
验证码漏洞利用技巧总结

验证码漏洞利用技巧总结

验证码漏洞利用技巧总结

验证码的设计初衷是为了防止恶意自动操作,如批量注册、暴力破解密码、刷票、垃圾评论等行为,从而保障服务的正常运行和数据的真实性。

由于开发人员开发不规范,攻击者可以绕过或者破解验证码,这些漏洞的存在对网络安全构成了严重威胁。

验证码漏洞不仅会导致个人隐私泄露、账户被盗用,还可能被用于大规模的网络犯罪活动,如分布式拒绝服务攻击(DDoS)、网络欺诈等,给用户、企业乃至社会带来不可估量的损失。

本文从短信验证码、图形验证码这两块内容进行技巧总结,如果还有遗漏的,望各位大佬多指点指点。

01

短信验证码

SMS Verification

1、短信轰炸

(1)没有对短信发送进行合理的次数限制,攻击者可以多次发送短信,造成短信轰炸,消耗短信资源。登录界面、忘记密码、用户注册等所有短信验证码发送点都可以试试。

可以把数据包放Repeater里面无数次重放,也可以放Intruder选择Null payloads,发送指定次数的数据包,对同一手机号进行批量短信发送。

验证码漏洞利用技巧总结

也可以通过遍历手机号,对不同的手机号进行短信发送,但是很多单位不认这个漏洞,暂时不写吧。

(2)单线程不行?并发试试呢。

并发漏洞是指在多线程或多进程环境中,由于对共享资源的访问没有正确的同步控制,导致程序行为异常或安全问题的漏洞。

使用turbo intruder插件进行并发,造成短信轰炸。

验证码漏洞利用技巧总结

2、特殊格式绕过

手机号前后增加以下字符串,实现绕过,进行短信验证码发送。

空格( )

加号(+)

86

086

0086

+86

0

00

/r

/n

,

特殊符号等

为什么插入特殊字符可以实现绕过呢?

举个例子:

加空格,在前端检测手机号的时候,会检测该手机号是否发送过短信,但是手机号末尾加的空格在进入数据库时会被过滤掉,所以无论添加多少个空格,最后进入数据库里的号码不变,但是绕过了前端检查。

+86代表国内的手机号,前面加上+86或者086也代表了该手机号。

验证码漏洞利用技巧总结

3、取前11位绕过

例如188888888881为12位,经过短信网关后,取前11位,批量发送导致短信轰炸。

4、删除cookie绕过

部分开发在代码中设置,根据cookie判断短信验证码是否获取过,可以尝试把cookie删除掉,进行短信轰炸。

验证码漏洞利用技巧总结

5、短信验证码转发

开发人员开发不规范,导致可以同时发送验证码给两个手机号。

phone=number,number

phone=number&phone=number

验证码漏洞利用技巧总结
验证码漏洞利用技巧总结

6、提交其他用户的手机验证码

验证码和手机号未进行绑定,导致可以提交其他手机号的验证码进行验证。

举个例子:

A用户的A手机号收到的验证码为aaaa。

B用户的B手机号收到的验证码为bbbb。

A用户使用B用户的验证码bbbb也可以正常进行登录A用户等业务操作。

7、修改手机号绕过

忘记密码、支付验证等大量业务环境中均有可能存在该漏洞。

A用户绑定了A手机号,在进行忘记密码等业务操作时,正常的业务流程为A用户向A手机号发送短信验证码aaaa,使用A手机号的短信验证码aaaa完成A用户的业务操作。

修改手机号绕过是在A用户向A手机号发送验证码时,抓取数据包,修改A手机号为B手机号,B手机号收到验证码bbbb,使用B手机号的验证码bbbb完成A用户的业务操作。

8、修改返回包绕过

修改返回的值false 为 success(只是举例,根据实际情况进行修改),如果前端校验的话,可以实现短信验证码绕过。

如果忘记密码功能是分步验证,那通过修改返回包可以跳过验证码验证步骤,直接进入忘记密码界面进行设置新密码。如果是登录界面的话,可以直接进入后台。

9、删除验证码参数绕过

跟图形验证码一样,删除短信验证码参数即可。

10、验证码暴力破解

当验证码强度不够并且服务器没有对验证码的提交次数、验证时间等参数进行限制时,可以尝试对验证码进行暴力破解。

如果验证码只有4位数字的情况下,爆破成功的概率是很高的。

11、万能验证码

不管收到的短信验证码为多少,验证码参数输入000000、888888、111111、123456等就能直接实现登录操作。

备注:在系统测试的时候设置了固定值,方便调试,系统上线时忘记删除就会导致该漏洞的存在。

12、短信验证码回显

短信验证码在返回包里面?注意看数据包的返回情况,有时候会有意外收获。

验证码漏洞利用技巧总结

13、验证码可编辑

部分短信发送接口,前端界面就正常的短信发送界面,但是抓取数据包以后,通过修改参数里面的短信发送内容,可以实现短信内容自定义。

短信内容自定义如果被恶意利用(插入钓鱼链接、恶意代码等),可以成为传播恶意信息的渠道。

14、验证码存在规律

多发送几次验证码以后,发现验证码存在一定的规律,可以根据该规律推测出下一次发送的验证码。

验证码漏洞利用技巧总结

02

图形验证码

Graphic Verification

1、图形验证码不失效

验证码一直输入的vcode=VI8J5,返回的报错为“username or password is not exists~”,而不是验证码错误的相关报错,验证码不失效,导致可以直接对用户名和密码进行暴力破解。

备注:有时候在真实环境中,因为获取到新验证码或者界面刷新以后,无法使用原图形验证码进行验证,所以我们需要拦截数据包(Intercept is on),然后用拦截的数据包去Intruder爆破用户名或者密码,爆破结束以后再放开数据包(Intercept is off)。

验证码漏洞利用技巧总结
验证码漏洞利用技巧总结

2、图形验证码前端验证

前端界面验证了验证码,但是后端没有进行验证,我们在输入界面输入正确的验证码,然后抓取数据包,放Intruder里面直接对账户密码暴力破解。

3、图形验证码设置为特定值

修改图形验证码参数为null或者true,可以实现对账户密码的暴力破解操作。

备注:测试环境下,为了提高工作效率,将验证码设置为null参数,或者开发在进行图形验证码判断的时候,只要是图形验证码收到的是true就会通过。系统上线时忘记删除就会导致该漏洞的存在。

验证码漏洞利用技巧总结

4、删除图形验证码参数

真实环境中遇到过,看了一下不好打码的,就假装这里有图吧。

当时是存在验证码参数导致不能遍历用户参数,删除验证码参数,即可进行用户遍历,获取所有用户的敏感信息。

举个例子:

原请求参数:

username=admin&password=admin123456&vcode=VI8J5

删除验证码后参数:

username=admin&password=admin123456&vcode=或者username=admin&password=admin123456

验证码漏洞利用技巧总结

5、图形验证码未校验

设置了验证码参数,但是服务器端并没有效验,乱输图形验证码也能够成功的登录。

6、图形验证码回显

图形验证码的值回显在返回包中。可以考虑结合脚本进行利用。

7、图形验证码进阶

有验证码,绕不过怎么办?上工具captcha-killer-modified。

攻击类型选择“pitchfork”,即可对验证码进行识别,跟随数据包进行发送,对账户密码进行暴力破解等操作。

备注:该工具识别成功率在85%左右。

验证码漏洞利用技巧总结
验证码漏洞利用技巧总结

03

参考文档

https://forum.butian.net/share/2602

验证码漏洞利用技巧总结

END

监制丨船长、铁子

策划丨Cupid

美工丨molin

验证码漏洞利用技巧总结

原文始发于微信公众号(千寻安服):验证码漏洞利用技巧总结

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年7月4日22:15:16
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   验证码漏洞利用技巧总结http://cn-sec.com/archives/2921179.html

发表评论

匿名网友 填写信息