简介
背景:
有时候用户名密码都是加密的,如果只是md5加密或者hash,burp的Intruder模块自带加密爆破功能,但是如果是自定义的加密方式,或者多层md5此时就没法直接爆破了,就需要寻找加密算法然后用到插件爆破
插件介绍:
一般情况下:需要找到加密.js文件和其中的加密主函数
BurpCrypto:不用单独启用phantomjs,直接在burp插件页面选择AES加密,传入AES key与AES value即可。如果是其他的加密可直接把加密函数复制进去
jsEncrypter:此插件使用phantomjs启动前端加密函数对数据进行加密,phantomjs会返回加密结果传给burp。因此此插件需要启动phantomjs开启服务,burp去读取结果。
靶场搭建
下载地址:https://github.com/c0ny1/jsEncrypter
只需要把jsEncrypter-master\test\webapp的目录,放在网站的根目录中
JS加密还原
使用JS-ED调试工具
Ctrl +Shift + F 搜索password相关函数,在可疑函数前打断点,单步调试找到md5.js
将MD5.js代码复制到调试工具,还原了加密算法
调试加密的结果 与浏览器一致
BurpCrypto
下载地址:https://github.com/whwlsfb/BurpCrypto
将jar加载到burp
找到burp加载的插件,复制代码到Exec Js中,填写调用的函数名,点击Add processor,随便输入一个项目名,点击确定
在Intruder的payload processing中选择刚才保存的加密方式
然后进行爆破,可以看到第34个payload是正确密码
那明文密码呢?选中密文 → 右键 → Extensions → Get PlainText
或者翻找加载的字典即可,也是第34个(行)
jsEncrypter
下载jsEncrypter: https://github.com/c0ny1/jsEncrypter/releases
下载phantomjs.exe: https://pan.baidu.com/s/1Owv6KXDGLEijbgHyyIXRfg /thbc
jsEncrypter依赖phantomjs,启动前端加密函数对数据进行加密,phantomjs会返回加密结果传给burp,因此此插件需要启动phantomjs开启服务,burp去读取结果
同样的把jsEncrypter.jar加载到burp,然后把加密方法md5.js同这几个文件放在一起
配置phantomjs_server.js文件:引入加密文件、调用加密函数
启动phantomjs_server.js:如图,成功启动(不要关)
在burp中加密payload
在Intruder中正常加载密码子弹,然后加载该编码插件
爆破出密码后,在log日志中找到密文对应的明文