鉴权验证码如何绕过#
0x01#
在项目上遇到了一个登陆口,但是有验证码,同时使用了当前验证码的 UUID 进行鉴权,简单来说就是
如果需要爆破登录接口,需要识别验证码的同时携带上本次验证码的 UUID 同时爆破,接口才能返回信息。
样式如下:
0X02#
UUID 同时有时间校验
UUID 正常的情况下:
重发包的情况下:
此处的 UUID 功能可以有:
- 时间戳
- SIGN 校验
- 验证码更新
爆破的时候就有个很尴尬的问题,如果直接引入 burp 里面,他的 UUID 是不会更新的,代表每一次的请求 SIGN 都是无效的。
0X03#
解决方案:
captcha-keiller 自带了一个解决方案
其中 regex 就是用来提取 token 之类的参数的。
regex 需要用正则提取,参考如下:
在 intrude 模块里面设置一下,在 intruder 中增加校验的参数@captcha-killer-modified@
参考如下:
爆破回显已经能够正确的运行:
log 日志显示如下:
完美解决这个问题。
所使用工具请参考以上说明:
https://github.com/f0ng/captcha-killer-modified