1工具概述
日常渗透过程中,经常会碰到一些网站需要破解其 JS 加密算法后,才能对数据包进行修改。我们将加密算法破解出来后,一般就是使用 python 的 requests 库,发送修改的数据包来进行渗透测试,导致效率低下,因此考虑将 JS 逆向的结果通过插件与 burp 结合,提高效率。在 JS 逆向结束之后,通过 RaindropEcho 提供的 JS 模版,导入到插件,就可以完成 burp 数据包的自动加解密。
2TODO
功能支持的更新
• 提供 JS 逆向模版,支持自定义编写:指定域名下指定接口的加解密算法
• 支持导入多个模版,同时破解多个接口的加密算法
• 导入模板后,将数据包送到插件里,RaindropEcho 会自动解密,并将解密的数据包放入到重放器
• 修改完数据后,发送数据包,RaindropEcho 会自动拦截明文数据包,进行加密后发出
3准备工作
• 安装 jython,burp 导入
• 安装 nodjs,并添加环境变量
4工具使用
JS 逆向模版使用
• 在 encryptFunction 函数里写好加密逻辑
• 在 config 里写好逆向代码对应的域名和接口
• 在 default_json 里写好逆向出来的初始原数据
JS 逆向模版如下:
const fs =require('fs');// 上面自己编写加密函数// 写加密函数的加载方式functionencryptFunction(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);}
5项目地址
https://github.com/tingyusys/RaindropEcho
(仅分享学习研究,如侵权请联系删除。)
6免费社区
安全洞察知识图谱星球是一个聚焦于信息安全对抗技术和企业安全建设的话题社区,也是一个[免费]的星球,欢迎大伙加入积极分享红蓝对抗、渗透测试、安全建设等热点主题
推荐站内搜索:最好用的开发软件、免费开源系统、渗透测试工具云盘下载、最新渗透测试资料、最新黑客工具下载……
还没有评论,来说两句吧...