背景
昨天正忙着当牛做马,突然就弹出老哥消息,只见老哥发了个链接,然后说爆破,于是我就上去看看是怎么个事
开局一个登录框还有验证码,彳亍,抓包看看什么情况
抓包后发现密码加密了,ok,撸起袖子就是开干
准备
一般像这种某个参数加密都是有js在前端做加密处理,只要我们定位到加密的js和函数进行调用,就可以控制该参数来进行爆破或其他行为
首先准备好burp插件jsEncrypter和nodejs(也可以使用phantomjs)
jsEncrypter插件使用phantomjs启动前端加密函数对数据进行加密,方便对加密数据输入点进行fuzz,比如可以使用于前端加密传输爆破等场景。
nodejs则是用于运行javascript代码。
0x01 定位
首先我们先来定位加密函数的位置,根据提交密码的对应的参数是cspwd,那就在js中找下这个参数在哪,login.js中我们定位到了五处
现在来找到他的加密段在哪,咱们继续往下匹配,这里就找到了他加密的地方
0x02 编写
这里就好办了,既然知道了加密的处理方式,后面就是简单的复制粘贴,我们吧这个库中的js全部都复制粘贴到需要编写的nodejs_server.js中
然后在需要编写的地方填写上加密的函数就像下面这样
然后就是启动,成功启动后咱们来测试下数据是否能成功加密
点击test却发现报错了?根据提示去看看哪里有问题
原来是 rs.modulus 和 rs.exponent 没有读取到数据,所以程序到这块就跑不了了
0x03 分析
根据前面文件的提示,该加密方式应该是rsa加密,rsa的话他的公钥肯定是能获取到的,不然是做不了加密的操作
我们来重新抓包看看整个流程
果然在发送登录请求的一开始就会有一个GET请求去访问服务来获取秘钥,我们把对应的参数都拿下来放到代码中
重启启动服务,再次测试
到这里我们就可以愉快的开始爆破了!
知识星球
原文始发于微信公众号(CatalyzeSec):记一次对密码加密的渗透
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论