burpsuite数据包自动加解密插件,autoDecoder详细安装+使用
字数 2240 2025-08-22 18:37:14

BurpSuite AutoDecoder 插件详细安装与使用指南

一、AutoDecoder 插件概述

AutoDecoder 是 BurpSuite 的一款功能强大的加解密插件,主要用于处理渗透测试过程中遇到的加密数据包和响应包。该插件具有以下核心功能:

  1. 内置多种常见加解密算法(如 DES/CBC/PKCS5Padding)
  2. 支持自定义加解密接口开发
  3. 支持请求包和响应包的独立加解密配置
  4. 支持正则匹配指定字段加解密
  5. 支持 multipart/form-data 格式数据包处理
  6. 可与其他插件(如 captcha-killer-modified)配合使用

二、安装与基础配置

1. 安装前准备

  • 确保已安装 Java 8 或更高版本
  • 确保 BurpSuite 已正确安装

2. 插件安装步骤

  1. 下载插件:从 GitHub 获取最新版本(https://github.com/f0ng/autoDecoder)
  2. 在 BurpSuite 中配置扩展环境:
    • 打开 BurpSuite → Extender → Options
    • 在 "Java Environment" 部分选择对应的 Java 版本(推荐 Java 8)
  3. 加载插件:
    • 打开 BurpSuite → Extender → Add
    • 选择下载的 autoDecoder 插件文件(.jar)
    • 点击 "Next" 完成加载

3. 基础功能测试

  1. 安装 Flask 框架(用于测试):

    pip3 install flask
    
  2. 创建测试脚本 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")
  1. 运行测试服务:
python3 ./app.py
  1. 在 BurpSuite 中测试加解密功能是否正常

三、内置加解密算法使用

1. 基本配置

  1. 打开 AutoDecoder 插件的"自带算法加解密模块设置"
  2. 配置加解密参数:
    • 算法:DES/CBC/PKCS5Padding
    • 密钥:f0ngtest
    • IV:f0ngf0ng
  3. 设置请求包解密,响应包不解密:
    • 在"响应包"字段设置为 null
  4. 点击"保存配置"

2. 选项模块设置

  1. 加密选项:选择"自带算法加解密"
  2. 域名:填写需要加解密的网站域名
  3. 明文关键字:设置为 "(双引号)
    • 原理:解密后的明文通常包含双引号,而密文中不会出现
  4. 点击"保存配置"

3. 使用效果

配置完成后:

  • 在请求模块和响应模块会显示 autoDecoder 选项
  • 可以在 autoDecoder 标签页查看明文
  • 加解密过程自动完成

四、指定字段加解密

1. 应用场景

当只有特定字段需要加解密时(如密码字段),可以使用正则匹配指定字段。

2. 配置步骤

  1. 在"自带算法加解密模块设置"中:
    • 将需要加密的字段值替换为正则表达式 (.*?)
    • 示例:将 CWppt9RAuoY= 替换为 (.*?)
  2. 测试加解密功能:
    • 在"Ciphertext"字段测试解密功能
    • 确认无误后点击"添加为响应包解密方式"
  3. 保存配置

3. multipart/form-data 处理

对于 multipart 格式数据包:

  1. 正则表达式中换行使用 \r\n 表示
  2. 需要替换的部分使用 ([^\n]*) 匹配
  3. 示例正则:
    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. 接口配置

  1. 在 AutoDecoder 的"接口加解密"选项卡中:
    • 设置接口地址(如 http://127.0.0.1:8887
    • 选择加解密方向(请求/响应)
  2. 在"选项模块设置"中:
    • 选择"接口加解密"
    • 配置目标域名
    • 设置合适的明文关键字(根据实际情况调整)
  3. 保存配置

六、与其他插件配合使用

1. 配合 captcha-killer-modified 进行爆破

  1. 安装 captcha-killer-modified 插件
  2. 配置验证码识别:
    • 找到验证码生成接口
    • 发送到 captcha-killer-modified 进行测试
    • 选择合适的识别模板(如 dddocr)
    • 点击"使用该插件"
  3. 配置 AutoDecoder 进行密码字段加密
  4. 在爆破模块中:
    • 选择 Pitchfork 模式
    • Payload 1:普通密码字典
    • Payload 2:选择 Extension-generated 类型,生成器选择 captcha-killer-modified

2. 注意事项

  1. 端口冲突:确保 captcha-killer-modified 和 AutoDecoder 使用不同端口
  2. 明文关键字:根据实际响应内容调整,确保能正确识别明文
  3. 正则表达式:精确匹配需要加解密的字段,避免误操作

七、常见问题解决

  1. 插件无法加载

    • 检查 Java 版本是否匹配
    • 检查 BurpSuite 版本是否兼容
    • 尝试重新下载插件
  2. 加解密不生效

    • 检查配置是否已保存
    • 检查明文关键字设置是否合理
    • 检查正则表达式是否正确
  3. 接口调用失败

    • 检查 Flask 服务是否正常运行
    • 检查端口是否被占用
    • 检查防火墙设置
  4. 乱码问题

    • 确保编码一致(推荐 UTF-8)
    • 检查加解密函数是否正确处理编码

八、最佳实践建议

  1. 积累常用加解密接口代码,建立自己的代码库
  2. 针对不同加密场景,保存不同的配置文件
  3. 测试时先使用小样本验证加解密效果
  4. 关注官方 GitHub 获取最新案例和更新
  5. 复杂加密场景可结合多个插件协同工作

通过熟练掌握 AutoDecoder 插件,可以显著提高处理加密数据包的效率,拓展渗透测试的能力范围。建议从简单场景开始练习,逐步掌握更复杂的使用方法。

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 框架(用于测试): 创建测试脚本 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]*) 匹配 示例正则: 五、自定义接口加解密 1. 接口开发框架 基本框架代码: 2. MD5 加密示例 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 插件,可以显著提高处理加密数据包的效率,拓展渗透测试的能力范围。建议从简单场景开始练习,逐步掌握更复杂的使用方法。