JsRpc联动burp实现自动加解密(详细版)
字数 905 2025-08-29 08:30:13
JsRpc联动Burp实现自动加解密详细教程
一、JsRpc基本介绍
JsRpc是一种通过JavaScript环境实现远程过程调用的技术,在渗透测试中常用于处理Web应用中的加解密逻辑,无需逆向具体算法即可实现自动化加解密。
二、准备工作
-
观察原始数据包特征:
- 请求体需要解密
- 请求头中的三个字段需要实时更新:
- timestamp
- requestId
- sign
-
工具准备:
- Burp Suite
- JsRpc工具包(包含JsEnv_Dev.js)
- mitmproxy(用于编写联动脚本)
三、JsRpc使用步骤
1. 定位加解密函数
- 在浏览器开发者工具中设置断点,让目标JS文件加载到作用域
- 在控制台执行语句将加解密函数提升至全局作用域
2. 注入JsRpc环境
- 停止断点
- 注入JsRpc中的JsEnv_Dev.js文件
3. 启动JsRpc服务
- 启动JsRpc服务端
- 客户端连接服务端
- 连接成功后服务端会提示"新上线..."
4. 注册处理函数
- 将加解密函数注册到JsRpc中
- 上方注册加密函数
- 下方注册解密函数
5. 测试功能
测试格式:
{
"zzz": "加入的组名(与连接时相同)",
"action": "注册的函数名",
"param": "要处理的参数"
}
- 加密测试:验证加密功能是否正常
- 解密测试:验证解密功能是否正常
四、联动Burp实现自动化
1. 使用mitmproxy编写脚本
- 编写mitmproxy脚本处理请求/响应
- 自动更新请求头中的三个字段
- 自动处理加解密逻辑
2. 配置Burp代理设置
- 设置Burp的上游代理指向mitmproxy
3. 运行脚本
- 启动mitmproxy并加载脚本
- 通过Burp发送请求验证自动化效果
五、验证效果
- 密码不正确时:系统会返回相应错误
- 密码正确时:
- Burp界面中请求头字段看似未变
- 实际请求中字段已被脚本更新
- 加解密过程自动完成
六、优势总结
- 无需逆向具体JS算法
- 自动化处理加解密流程
- 实时更新动态字段
- 与Burp无缝集成,提高测试效率
七、注意事项
- 确保JS环境正确加载
- 函数提升到全局作用域时注意作用域链
- 组名(zzz)必须与连接时一致
- mitmproxy脚本需正确处理请求/响应流
通过以上步骤,可以高效实现Web应用加解密的自动化处理,显著提高渗透测试效率。