某众测前端解密学习记录
字数 1084 2025-08-19 12:42:36
某众测前端解密学习记录解析与教学文档
1. 背景概述
在一次大型金融公司众测项目中,发现所有网络请求数据都是加密的,这给渗透测试带来了挑战。通过使用Jsrpc和autoDecoder工具进行学习调试,最终成功还原了数据包,并挖掘出高危漏洞。
2. 关键工具与技术
2.1 Jsrpc
Jsrpc是一个用于RPC(远程过程调用)的工具,在前端加密分析中特别有用:
- 允许拦截和修改JavaScript函数调用
- 可以动态Hook加密函数
- 提供实时调试能力
2.2 autoDecoder
autoDecoder是一个自动化解密过程的工具:
- 自动识别常见加密模式
- 支持自定义解密算法
- 提供批量解密功能
3. 解密流程详解
3.1 数据包捕获与分析
- 使用抓包工具(如Burp Suite)捕获加密请求
- 分析请求特征:
- 请求头中的加密标识
- 请求体的结构
- 参数命名规律
3.2 前端加密定位
- 使用浏览器开发者工具分析前端JavaScript
- 搜索关键词如"encrypt"、"decrypt"、"AES"、"RSA"等
- 定位加密函数入口点
3.3 加密算法逆向
- 使用Jsrpc Hook关键加密函数
- 记录函数输入输出
- 分析加密参数:
- 密钥来源
- 加密模式(如CBC、ECB)
- 填充方式
- IV向量处理
3.4 数据包还原
- 使用autoDecoder配置解密参数
- 测试解密算法准确性
- 批量处理捕获的数据包
4. 漏洞挖掘技巧
-
还原明文后检查:
- 参数是否可遍历
- ID是否可预测
- 是否存在越权可能
-
修改明文参数后重新加密测试:
- 金额篡改
- ID替换
- 权限提升尝试
-
关注业务逻辑漏洞:
- 重复提交
- 并发请求
- 时序问题
5. 关键代码片段分析
根据评论中提到的代码片段:
param = request.form.get('dataBody') # 获取post参数
这行代码获取的是加密后的数据体,需要进一步解密处理。解密流程可能包含:
- Base64解码
- 对称解密(如AES)
- 非对称解密(如RSA)
- 解压缩(如gzip)
6. 实战建议
-
加密顺序分析技巧:
- 从后向前逆向(先看最后一步是什么编码/加密)
- 查找密钥硬编码或动态获取逻辑
- 注意时间戳或随机数参与加密的情况
-
常见加密模式识别:
- AES: 固定块大小(16字节),可能有IV
- RSA: 长文本,使用公钥加密
- 自定义加密: 混合多种算法,需逐步分析
-
调试技巧:
- 使用console.log输出中间值
- 设置断点观察变量变化
- 对比多个请求分析加密模式
7. 总结
前端加密分析的关键在于:
- 准确定位加密函数
- 理解加密流程和参数
- 使用工具辅助解密
- 在明文状态下进行漏洞测试
通过这种方法,即使在高度加密的环境中,也能有效发现潜在的安全漏洞。