Burp插件,自动解密被加密的报文
1►
工具介绍
日常渗透过程中,经常会碰到一些网站需要破解其 JS 加密算法后,才能对数据包进行修改。我们将加密算法破解出来后,一般就是使用 python 的 requests 库,发送修改的数据包来进行渗透测试,导致效率低下,因此考虑将 JS 逆向的结果通过插件与 burp 结合,提高效率。在 JS 逆向结束之后,通过 RaindropEcho 提供的 JS 模版,导入到插件,就可以完成 burp 数据包的自动加解密。
2►
工具使用
JS 逆向模版使用
1、在 encryptFunction 函数里写好加密逻辑
2、在 config 里写好逆向代码对应的域名和接口
3、在 default_json 里写好逆向出来的初始原数据
JS 逆向模版如下:
const fs = require('fs');// 上面自己编写加密函数// 写加密函数的加载方式function encryptFunction(data) {// 使用 JSON.parse 将字符串转换为 JSON 对象const json_data = JSON.parse(data);// 原来数据包时什么格式,就要返回什么格式return `data=${jeimit(json_data.data)}&crc=${json_data.crc}`}// 编写域名和接口const config = {domain: "xxx.com",path: "/v3/xxx"};// 编写逆向出来的原数据const default_json = {}// 下面代码不要动---------------------------------------------------------------// 检查传递的参数数量const mode = process.argv[2];if (mode === 'config') {console.log(JSON.stringify(config));process.exit(0);}if (mode === 'default') {console.log(JSON.stringify(default_json));process.exit(0);}if (process.argv.length < 4) {console.error("Usage: node script.js [mode] [inputFile] [outputFile]");process.exit(1);}const inputFile = process.argv[3];const outputFile = process.argv[4];// 读取输入文件内容let inputData;try {inputData = fs.readFileSync(inputFile, 'utf8');} catch (err) {console.error(`Error reading input file: ${inputFile}`, err);process.exit(1);}let outputData;switch (mode) {case 'encrypt':outputData = encryptFunction(inputData);break;default:console.error(`Unknown mode: ${mode}`);process.exit(1);}// 将输出数据写入输出文件try {fs.writeFileSync(outputFile, outputData, 'utf8');} catch (err) {console.error(`Error writing to output file: ${outputFile}`, err);process.exit(1);}
导入插件
导入模板文件
step 1:选择 js 文件
step 2:测试 js 文件放置路径(注:js 文件路径一定不要有中文)
step 3:导入完成后
插件使用
注明:
-
本次演示,选用网站心跳包测试,无任何敏感数据,对网站无任何影响
step 1:选择对应的数据包
step 2:发送到插件
step 3:修改数据包成功发送
3►
TODO
4►
工具获取
https://github.com/tingyusys/RaindropEcho
文章来源:李白你好
黑白之道发布、转载的文章中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,任何人不得将其用于非法用途及盈利等目的,否则后果自行承担!
如侵权请私聊我们删文
END