在某测试过程中。某登录页面的请求如下:
密码使用了加密方式,且存在验证码,当渗透没有发现其他问题或者是思路的时候,爆破不得不成为我们的选择,但是如何绕过这两个限制进行爆破,测试发现,这个验证码是存在问题的,我们只需要解决第一个问题。全局搜索一下password看看有没有什么发现,如下:
可以看出密码在传输时使用encrypt函数处理,搜索一下这个函数:
貌似是使用CryptJs进行AES加密:
已经知道了方式,一种简单的方式就是通过已知的加密方式,批量生成我们的字典,最开始掉进了一个误区,就是利用javascript的数组生成字典,比如,生成4个密码:
但是这样对密码字典来说并不现实,因为字典至少也是几千级别了,后来老哥说可以使用python,如python2的pyv8,python3的PyExecJS来执行JS,尝试如下:
em......报错如下:
全局搜索CryptJs,在dataplus.js中发现相关信息,不用管里面的细节,我们只需要执行他:
保存到本地,调整python代码:
然后就可以愉快的进行爆破了: