前端JS加密,autoDecoder插件的使用
·
autoDecoderf0ng/autoDecoder: Burp插件,根据自定义来达到对数据包的处理(适用于加解密、爆破等),类似mitmproxy,不同点在于经过了burp中转,在自动加解密的基础上,不影响APP、网站加解密正常逻辑等。
https://github.com/f0ng/autoDecoder具体使用可参考这位大佬的文章
burpsuite数据包自动加解密插件,autoDecoder详细安装+使用-CSDN博客
encrypt靶场地址
AES固定key
打开靶场,发现传输数据加密

随便下个断点

一直点单步跳过

找到加密key和iv,并且是使用的AES加密
function sendDataAes(url) {
const formData = {
username: document.getElementById("username")
.value,
password: document.getElementById("password")
.value
};
const jsonData = JSON.stringify(formData);
const key = CryptoJS.enc.Utf8.parse("1234567890123456");
const iv = CryptoJS.enc.Utf8.parse("1234567890123456");
const encrypted = CryptoJS.AES.encrypt(jsonData, key, {
iv: iv,
mode: CryptoJS.mode.CBC,
padding: CryptoJS.pad.Pkcs7
})
.toString();
const params = `encryptedData=${encodeURIComponent(encrypted)}`;
打开autoDecoder,配置相关参数如下


填写好后记得保存配置
换几个密码,抓包试试解密是否成功
admin/admin

admin/12345

成功解密
右键发送到爆破模块

简单爆破一下

logger里面也可以看到请求包是加密的

repeater模块也是可行的

AES服务端获取key
F12分析,发现是使用fetchAndSendDataAes方法

定位到加解密相关函数分析,客户端会首先向encrypt/server_generate_key.php请求获取AES的key和iv,接着再对传入的username和password进行加密

抓包验证,确实有两个包,且若session不变,key和iv也不会变

在方法fetchAndSendDataAes,这里下个断点调试,可以看到解密后的明文格式,以及加密过程

配置好autoDecoder

repeater

更多推荐


所有评论(0)