文章总结: RaindropEcho是一款JS逆向工具,用于在渗透测试中破解网站JS加密算法。它与BurpSuite集成,通过提供JS模板让用户编写加密逻辑,实现数据包的自动加解密,提高渗透测试效率。工具支持自定义编写、导入多个模板、自动解密数据包并放入重放器,以及自动拦截明文数据包进行加密后发出。文章详细介绍了工具的安装、配置和使用方法,包括JS模板的结构和导入步骤。 综合评分: 91 文章分类: 渗透测试,WEB安全,安全工具,漏洞分析,代码审计
一款JS逆向神器-RaindropEcho
tingyusys
知微守望
2025年11月16日 10:46 浙江
一、工具概述
日常渗透过程中,经常会碰到一些网站需要破解其 JS 加密算法后,才能对数据包进行修改。我们将加密算法破解出来后,一般就是使用 python 的 requests 库,发送修改的数据包来进行渗透测试,导致效率低下,因此考虑将 JS 逆向的结果通过插件与 burp 结合,提高效率。在 JS 逆向结束之后,通过 RaindropEcho 提供的 JS 模版,导入到插件,就可以完成 burp 数据包的自动加解密。
📝 二、TODO
功能支持的更新
- 提供 JS 逆向模版,支持自定义编写:指定域名下指定接口的加解密算法
- 支持导入多个模版,同时破解多个接口的加密算法
- 导入模板后,将数据包送到插件里,RaindropEcho 会自动解密,并将解密的数据包放入到重放器
- 修改完数据后,发送数据包,RaindropEcho 会自动拦截明文数据包,进行加密后发出
🚨 三、准备工作
- 安装 jython,burp 导入
- 安装 nodjs,并添加环境变量
🐉 四、工具使用
JS 逆向模版使用
- 在 encryptFunction 函数里写好加密逻辑
- 在 config 里写好逆向代码对应的域名和接口
- 在 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:修改数据包成功发送
参考链接
https://github.com/tingyusys/RaindropEcho
真心感觉自己要学习的知识好多,也有好多大神卧虎藏龙、开源分享。作为初学者,我们可能有差距,不论你之前是什么方向,是什么工作,是什么学历,是大学大专中专,亦或是高中初中,只要你喜欢安全,喜欢渗透,就朝着这个目标去努力吧!有差距不可怕,我们需要的是去缩小差距,去战斗,况且这个学习的历程真的很美,安全真的有意思。但切勿去做坏事,我们需要的是白帽子,是维护我们的网络,安全路上共勉。
本文版权归作者和微信公众号平台共有,重在学习交流,不以任何盈利为目的,欢迎转载。
由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,文章作者不为此承担任何责任。公众号内容中部分攻防技巧等只允许在目标授权的情况下进行使用,大部分文章来自各大安全社区,个人博客,如有侵权请立即联系公众号进行删除。若不同意以上警告信息请立即退出浏览!!!
敲敲小黑板:《刑法》第二百八十五条 【非法侵入计算机信息系统罪;非法获取计算机信息系统数据、非法控制计算机信息系统罪】违反国家规定,侵入国家事务、国防建设、尖端科学技术领域的计算机信息系统的,处三年以下有期徒刑或者拘役。违反国家规定,侵入前款规定以外的计算机信息系统或者采用其他技术手段,获取该计算机信息系统中存储、处理或者传输的数据,或者对该计算机信息系统实施非法控制,情节严重的,处三年以下有期徒刑或者拘役,并处或者单处罚金;情节特别严重的,处三年以上七年以下有期徒刑,并处罚金。
查看原文:《一款JS逆向神器-RaindropEcho》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。










评论