0x01 背景
撸站难免会遇到需要爆破账号密码的时候,而这时遇到提交账号密码不是明文提交的就略显尴尬了。很多时候我都放弃了,因为一般爆破什么的也不会有好结果。但今天看到一个大佬写的神器,感觉如果是前端进行加密的话,还是可以抗争一下的。
下面就分享一下自己用这个神器的一些心得,来帮助同样基础比较弱的头一次使用的其他小白。
0x02 所需材料
首先是项目的地址
正如描述所说这是一个burp插件,所以将打包好后的插件在burp中安装即可使用:
image.png
解压后
image.png
可看到一个简易的phantomjs的server,此时你需要下载phantomjs,http://phantomjs.org/ 找到自己需要的版本
image.png
解压即可使用,这里为了方便后期修改,把server和要破解的js放到了同一目录
image.png
概括来说就是需要:
burp及打包好的jar插件,并安装
phantomjs
项目中提供的phantomjs_server.js
0x03 使用
流程很简单,即:
使用phantomjs启动phantomjs_server.js
phantomjs.exe .\phantomjs_server.js
(当然这里的phantomjs_server.js需要根据实际破解的东西进行定制化改写)
burp里使用插件连接phantom_server.js,默认是本地1664端口,连接成功会显示true
image.png
2.点击test,server可以收到相关数据,表明测试成功
image.png
intruter里配置相关的插件就可以转换相关的payload
0x04 定制化改写
大致的使用流程了解后,就可以进行简单的尝试,这里的项目中附带了常用的几种加密方法,但是经常实际的需求并不能简单满足于此几种加密算法,所以我们还需对其进行定制化的改写
image.png
那么如何改写,这里先拿base64做一个参照,
原始phantomjs_server.js文件:
image.png
发现很明显是用定制过的server.js去调用了加密算法的js实现了破解
原始phantomjs_server.js文件
定制后的jsEncrypter_base64.js
定制后的jsEncrypter_base64.js
base64.js:
base64.js
所以这里主要是对这块进行修改即可:
// 处理函数function js_encrypt(payload){ var newpayload; /**********在这里编写调用加密函数进行加密的代码************/ /**********************************************************/ return newpayload;}
举个实战中的例子:
这里在获取短信验证码时会使用smsCheckPwd()方法:
image.png
对这个方法在source里进行搜索,可发现出现在login.js中:
image.png
点击该方法后可发现是由ajaxDirect()完成的发送动作:
image.png
对其进行搜索:
image.png
跟进ajaxDirect:function(params)方法,发现参数是由desParam进行的加密,继续跟进
image.png
最终我们可以锁定是使用的des.js中的strEnc()进行的加密操作:
image.png
下载下来des.js之后,我们可从上文看出三个加密的密钥值,
image.png
对其进行简单分析,即可对phantom_server.js进行定制化的改写,从而达到0x03节中的效果 ;
image.png
+++ 感觉不错的话也欢迎大家多支持!
领取专属 10元无门槛券
私享最新 技术干货