SRC之Burp宏利-验证码明文返回
又是好久没发文章了,最近太忙了,不过后续可能会好一点?可能吧,后续打算就开始写一些免杀方面的文章了,从浅入深,欢迎师傅们关注交流学习并指正,本篇文章写了最近遇到的一个有趣的滑块验证码存在的安全问题,整个过程很简单,但是里面遇到了各种问题和bug,解决经验还是比较有价值的。
一开始挂上BP访问这个站点会如下提示
这个情况,把BP里面的如下设置打开就可以了
开局一个登录框,本来想着测试一下有没有短信炸弹来着,结果一看好家伙竟然有滑块验证码,这种情况下我的测试思路就是开两个页面,具体的之前的文章中说过这里也不多说了,最后发现并没有短信炸弹漏洞
怎么办呢,测试吗,细心也很重要,通常每个请求包我都会看到,于是当我拖动滑块验证码的时候发现了这东西,你,,,在搞笑吗?
我拖动滑块完成验证后,发了一个请求,然后返回了4位数字,作为验证码
然后我点击获取验证码
按钮之后,发出获取手机验证码的请求,然后在请求中存在两个参数,一个是手机号,一个就是所谓滑块验证码返回的四个数字,这个跟图形验证码中的响应体返回验证码值
本质上是一个东西啊
ok,那么接下来利用它,首先第一步js逆向把telephone的加密逻辑找到,浏览器中直接打开f12看流量堆栈,可以看到下图中第三个像是对应函数,点进去
找到telephone参数,可以看到RSA,非对称加密,接下来找公钥,去追溯参数key
找到对应位置,可以看到公钥非常见的x509格式,而是ModulusAndExponent,模数指数的形式
好在BP的Burpcrpto支持这个格式,但是在复现的时候发现,通过插件中RSA进行加密的值后端不认,醉了,然后我直接简单粗暴,用的下图中的Exec Js,直接debug把之前前端翻到的RSAUtils
里面的代码拿过来
然后定义如下所示
接下来,梳理利用思路,我们要证明这个验证码是有问题的,那么我们分两步走,第一步滑块完成获取4位数字的请求,然后拿这个数字去构造发送手机验证码的包,也就是说每次我要获取一下4位数字,然后放到下方的值那里,然后这个包我们就可以随便发了
ok,那么Brup中的宏可以出色的完成这个任务,创建一个宏
点击add后,选中我们获取4位数字那个请求
配置
添加
默认的方式,开始和结束符去定位就可以,我们直接选中四个数字,点击ok,然后上方Parameter name
那里写我们利用的发送手机验证码请求里面四位数字参数的名称也就是graphicCode
然后一路ok,添加好后,让这个宏生效
添加规则,规则行为里面选择运行一个宏
选它,把刚才的参数名加进去
ok之后,再到scope里面选择匹配的url为所有urls(因为我比较懒)
这个时候我们去重放模块去发送请求,每点击一次发送graphicCode的参数值都会自动改变
第二次
然后拿一批手机号开始爆破,graphicCode参数那块不用管,因为有全局宏
爆破结果如下,发现没有好用,为什么?没好用吗?
我想了想,可能是速度太快,并发太高造成的,也就是前一个验证码获取完,还没发包,就又获取了第二个所以前一个就失效了,改一下
这多好~~
原文始发于微信公众号(小惜渗透):SRC之Burp宏利-验证码明文返回
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论