记录burp插件autoDecoder的一次数据解密实战
字数 1289 2025-09-01 11:26:17
Burp插件AutoDecoder实战:AES加密数据解密教程
0x01 网站加密算法分析
-
初步观察:
- 通过Burp Suite抓包发现请求和响应数据都被加密
- 从密文特征判断可能使用AES加密算法
-
分析思路:
- 需要定位关键加密函数及参数
- 确定是否可以进行解密操作
0x02 参数及函数定位
-
搜索加密算法:
- 在JS文件中搜索"AES"关键字
- 若存在多个加密算法,需通过调试定位实际使用的函数
-
调试定位:
- 通过调试定位到解密关键函数
m - 获取关键参数:
- 密钥:
n - 偏移量:
t - 加密模式:ECB
- 填充方式:PKCS7Padding
- 密钥:
- 通过调试定位到解密关键函数
-
关键点:
- ECB模式下不需要IV(初始化向量)也可解密
- PKCS7Padding可以用PKCS5Padding替代
0x03 数据解密方法
方法一:使用Burp插件AutoDecoder
-
插件准备:
- 安装AutoDecoder插件
- 插件提供:
- 内置加解密算法
- 自定义算法框架
- 半自动化解密流程
-
配置步骤:
- 在第一个选项卡中填入目标域名
- 在算法配置部分:
- 选择AES算法
- 填入获取的密钥
key - ECB模式下可不填IV
- 选择PKCS5/PKCS7填充方式
-
测试解密:
- 将密文传入测试框验证能否正确解密
- 确认算法配置正确性
-
保存配置:
- 分别对请求和响应包保存配置
- 插件会将配置参数保存在文件中
-
自动化解密问题解决:
- 问题:未指定加密数据匹配方式,导致传入非纯密文
- 解决方案:
- 使用"正则模式"匹配关键内容
- 观察数据包特征(如特定开头字符串)
- 编写匹配规则,如:
"xxxxxx"(根据实际情况调整)
-
最终应用:
- 完成所有配置后重新保存
- 插件将自动处理数据包中的加密数据
方法二:JS代码逆向转Python解密
-
逆向过程:
- 通过调试理解网站加密流程
- 将关键JS加密函数转换为Python实现
-
实现功能:
- 还原加解密过程
- 实现对单个密文的加解密
-
优势:
- 不依赖Burp插件
- 可集成到自动化脚本中
关键知识点总结
-
AES加密特征识别:
- 固定长度分块加密
- 常见于前后端数据保护
-
ECB模式特点:
- 不需要IV
- 相同明文产生相同密文
- 安全性较其他模式低
-
PKCS填充:
- PKCS7与PKCS5在AES中可互换
- 填充规则:缺少N字节则填充N个值为N的字节
-
调试技巧:
- 通过关键字搜索定位加密函数
- 使用开发者工具调试JS代码
- 观察网络请求与加密函数的关联
-
AutoDecoder使用要点:
- 准确匹配密文区域是关键
- 正则表达式可提高匹配精度
- 测试验证后再应用到自动化流程
注意事项
-
法律合规:
- 仅对授权目标进行测试
- 获取书面授权后再进行渗透测试
-
技术限制:
- 若使用CBC等需要IV的模式,必须获取IV
- 某些实现可能使用自定义填充或加密流程
-
调试技巧:
- 可设置XHR断点定位AJAX请求加密点
- 搜索"encrypt"、"decrypt"等关键字辅助定位
通过本教程,您应该掌握了使用AutoDecoder插件解密AES加密数据包的完整流程,以及通过逆向JS代码实现解密的替代方法。实际应用中需根据具体场景选择合适的方法。