登陆口js前端加密绕过

环境搭建

1、首先得安装maven,具体方法百度

2、下载 https://github.com/c0ny1/jsEncrypter c0ny1师傅写好的burp插件

  • 运行mvn package进行编译,编译好后会多出一个target文件夹

image-20220730103447463

  • test文件夹是本地测试demo跟常见加密算法的js脚本
  • script脚本为自带的phantomjs服务端模板文件

3、把target文件夹里面的jar插件添加到burp里面

image-20220730104257196

image-20220730104615359

4、安装phomtomjs,并把phantomjs-2.1.1-windows\bin添加到环境变量,测试出现下图为成功

https://phantomjs.org/download.html

image-20220730105108614

本地实践

1、安装phpstudy,然后把jsencrypter/test/webapp整个文件夹复制到phpstudy

image-20220731090139575

2、运行phpstudy,访问 /webapp 出现下图为成功

image-20220731090341654

3、登录抓取数据包,发现进行了加密

image-20220731090913263

4、f12打开控制台进行调试,首先查看 index,可以看到调用了 JSEncrypt.js 文件,并且引入了 public_key

image-20220731091517096

5、修改 phantomjs_server.js 对应位置

image-20220730161807644

填入内容,如图所示

1
2
3
4
var encrypt = new JSEncrypt();
var key = "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC0Llg1bVZhnyslfezwfeOkvnXWq59bDtmQyHvxkP/38Fw8QQXBfROCgzGc+Te6pOPl6Ye+vQ1rAnisBaP3rMk40i3OpallzVkuwRKydek3V9ufPpZEEH4eBgInMSDiMsggTWxcI/Lvag6eHjkSc67RTrj96oxj0ipVRqjxW4X6HQIDAQAB";
encrypt.setPublicKey(key);
new_payload = encrypt.encrypt(burp_payload);

image-20220731095258593

6、把加密的js文件拷贝放到同一文件夹命名为rsa.js,运行server文件:phantomjs rsa.js

image-20220731095422666

7、burp点击test,测试出现下图为成功

image-20220731095547134

image-20220731095717134

8、把登录数据包发送至爆破模块

image-20220731100602307

9、爆破成功,账号密码为 admin/admin

image-20220731101315562