autoDecoderf0ng/autoDecoder: Burp插件,根据自定义来达到对数据包的处理(适用于加解密、爆破等),类似mitmproxy,不同点在于经过了burp中转,在自动加解密的基础上,不影响APP、网站加解密正常逻辑等。https://github.com/f0ng/autoDecoder具体使用可参考这位大佬的文章

burpsuite数据包自动加解密插件,autoDecoder详细安装+使用-CSDN博客

encrypt靶场地址

SwagXz/encrypt-labs: 前端加密对抗练习靶场,包含非对称加密、对称加密、加签以及禁止重放的测试场景,比如AES、DES、RSA,用于渗透测试练习https://github.com/SwagXz/encrypt-labs

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

 

更多推荐