burpsuite数据包自动加解密插件,autoDecoder详细安装+使用
字数 2240 2025-08-22 18:37:14
BurpSuite AutoDecoder 插件详细安装与使用指南
一、AutoDecoder 插件概述
AutoDecoder 是 BurpSuite 的一款功能强大的加解密插件,主要用于处理渗透测试过程中遇到的加密数据包和响应包。该插件具有以下核心功能:
- 内置多种常见加解密算法(如 DES/CBC/PKCS5Padding)
- 支持自定义加解密接口开发
- 支持请求包和响应包的独立加解密配置
- 支持正则匹配指定字段加解密
- 支持 multipart/form-data 格式数据包处理
- 可与其他插件(如 captcha-killer-modified)配合使用
二、安装与基础配置
1. 安装前准备
- 确保已安装 Java 8 或更高版本
- 确保 BurpSuite 已正确安装
2. 插件安装步骤
- 下载插件:从 GitHub 获取最新版本(https://github.com/f0ng/autoDecoder)
- 在 BurpSuite 中配置扩展环境:
- 打开 BurpSuite → Extender → Options
- 在 "Java Environment" 部分选择对应的 Java 版本(推荐 Java 8)
- 加载插件:
- 打开 BurpSuite → Extender → Add
- 选择下载的 autoDecoder 插件文件(.jar)
- 点击 "Next" 完成加载
3. 基础功能测试
-
安装 Flask 框架(用于测试):
pip3 install flask -
创建测试脚本
app.py:
# -*- coding:utf-8 -*-
from flask import Flask, Response, request
from pyDes import *
import base64
def des_encrypt(s):
secret_key = "f0ngtest"
iv = "f0ngf0ng"
k = des(secret_key, CBC, iv, pad=None, padmode=PAD_PKCS5)
en = k.encrypt(s, padmode=PAD_PKCS5)
return base64.encodebytes(en).decode()
def des_decrypt(s):
secret_key = "f0ngtest"
iv = "f0ngf0ng"
k = des(secret_key, CBC, iv, pad=None, padmode=PAD_PKCS5)
de = k.decrypt(base64.decodebytes(bytes(s, encoding="utf-8")), padmode=PAD_PKCS5)
return de.decode()
app = Flask(__name__)
@app.route('/encode', methods=["POST"])
def encrypt():
param = request.form.get('dataBody')
param_headers = request.form.get('dataHeaders')
param_requestorresponse = request.form.get('requestorresponse')
encry_param = des_encrypt(param.strip("\n"))
if param_requestorresponse == "request":
return param_headers + "\r\n\r\n\r\n\r\n" + encry_param
return encry_param
@app.route('/decode', methods=["POST"])
def decrypt():
param = request.form.get('dataBody')
param_headers = request.form.get('dataHeaders')
param_requestorresponse = request.form.get('requestorresponse')
decrypt_param = des_decrypt(param.strip("\n"))
if param_requestorresponse == "request":
return param_headers + "\r\n\r\n\r\n\r\n" + decrypt_param
else:
return decrypt_param
if __name__ == '__main__':
app.run(host="0.0.0.0", port="8888")
- 运行测试服务:
python3 ./app.py
- 在 BurpSuite 中测试加解密功能是否正常
三、内置加解密算法使用
1. 基本配置
- 打开 AutoDecoder 插件的"自带算法加解密模块设置"
- 配置加解密参数:
- 算法:DES/CBC/PKCS5Padding
- 密钥:f0ngtest
- IV:f0ngf0ng
- 设置请求包解密,响应包不解密:
- 在"响应包"字段设置为
null
- 在"响应包"字段设置为
- 点击"保存配置"
2. 选项模块设置
- 加密选项:选择"自带算法加解密"
- 域名:填写需要加解密的网站域名
- 明文关键字:设置为
"(双引号)- 原理:解密后的明文通常包含双引号,而密文中不会出现
- 点击"保存配置"
3. 使用效果
配置完成后:
- 在请求模块和响应模块会显示 autoDecoder 选项
- 可以在 autoDecoder 标签页查看明文
- 加解密过程自动完成
四、指定字段加解密
1. 应用场景
当只有特定字段需要加解密时(如密码字段),可以使用正则匹配指定字段。
2. 配置步骤
- 在"自带算法加解密模块设置"中:
- 将需要加密的字段值替换为正则表达式
(.*?) - 示例:将
CWppt9RAuoY=替换为(.*?)
- 将需要加密的字段值替换为正则表达式
- 测试加解密功能:
- 在"Ciphertext"字段测试解密功能
- 确认无误后点击"添加为响应包解密方式"
- 保存配置
3. multipart/form-data 处理
对于 multipart 格式数据包:
- 正则表达式中换行使用
\r\n表示 - 需要替换的部分使用
([^\n]*)匹配 - 示例正则:
Content-Type: image/png\r\n\r\n([^\n]*)\r\n
五、自定义接口加解密
1. 接口开发框架
基本框架代码:
# -*- coding:utf-8 -*-
from flask import Flask, Response, request
import base64, hashlib, json
from pyDes import *
# 自定义加密函数
def custom_encrypt(s):
# 实现你的加密逻辑
return encrypted_data
# 自定义解密函数
def custom_decrypt(s):
# 实现你的解密逻辑
return decrypted_data
app = Flask(__name__)
@app.route('/encode', methods=["POST"])
def encrypt():
param = request.form.get('dataBody')
# 处理加密逻辑
return encrypted_result
@app.route('/decode', methods=["POST"])
def decrypt():
param = request.form.get('dataBody')
# 处理解密逻辑
return decrypted_result
if __name__ == '__main__':
app.run(host="0.0.0.0", port=8887)
2. MD5 加密示例
from flask import Flask, Response, request
import hashlib, re
def md5_encrypt(s):
md5 = hashlib.md5()
md5.update(s.encode('utf-8'))
return md5.hexdigest()
app = Flask(__name__)
@app.route('/encode', methods=["POST"])
def encrypt():
param = request.form.get('dataBody')
pattern = r'p_md5=(.*?)&'
match = re.search(pattern, param)
md5 = match.group(1)
encry_param = param.replace(md5, md5_encrypt(md5).strip())
return encry_param
@app.route('/decode', methods=["POST"])
def decrypt():
param = request.form.get('dataBody')
return param
if __name__ == '__main__':
app.run(host="0.0.0.0", port=8887)
3. 接口配置
- 在 AutoDecoder 的"接口加解密"选项卡中:
- 设置接口地址(如
http://127.0.0.1:8887) - 选择加解密方向(请求/响应)
- 设置接口地址(如
- 在"选项模块设置"中:
- 选择"接口加解密"
- 配置目标域名
- 设置合适的明文关键字(根据实际情况调整)
- 保存配置
六、与其他插件配合使用
1. 配合 captcha-killer-modified 进行爆破
- 安装 captcha-killer-modified 插件
- 配置验证码识别:
- 找到验证码生成接口
- 发送到 captcha-killer-modified 进行测试
- 选择合适的识别模板(如 dddocr)
- 点击"使用该插件"
- 配置 AutoDecoder 进行密码字段加密
- 在爆破模块中:
- 选择 Pitchfork 模式
- Payload 1:普通密码字典
- Payload 2:选择 Extension-generated 类型,生成器选择 captcha-killer-modified
2. 注意事项
- 端口冲突:确保 captcha-killer-modified 和 AutoDecoder 使用不同端口
- 明文关键字:根据实际响应内容调整,确保能正确识别明文
- 正则表达式:精确匹配需要加解密的字段,避免误操作
七、常见问题解决
-
插件无法加载:
- 检查 Java 版本是否匹配
- 检查 BurpSuite 版本是否兼容
- 尝试重新下载插件
-
加解密不生效:
- 检查配置是否已保存
- 检查明文关键字设置是否合理
- 检查正则表达式是否正确
-
接口调用失败:
- 检查 Flask 服务是否正常运行
- 检查端口是否被占用
- 检查防火墙设置
-
乱码问题:
- 确保编码一致(推荐 UTF-8)
- 检查加解密函数是否正确处理编码
八、最佳实践建议
- 积累常用加解密接口代码,建立自己的代码库
- 针对不同加密场景,保存不同的配置文件
- 测试时先使用小样本验证加解密效果
- 关注官方 GitHub 获取最新案例和更新
- 复杂加密场景可结合多个插件协同工作
通过熟练掌握 AutoDecoder 插件,可以显著提高处理加密数据包的效率,拓展渗透测试的能力范围。建议从简单场景开始练习,逐步掌握更复杂的使用方法。