某系统加解密分析
字数 919 2025-08-29 22:41:11

某系统加解密分析技术文档

前言

在一次项目测试中,发现目标系统的核心功能返回包均被加密。为方便后续测试工作,最终借助autoDecoder工具实现了流量全自动加解密。

工具介绍

autoDecoder是一款BurpSuite插件,主要功能包括:

  • 根据自定义接口处理数据包(适用于加解密、爆破等场景)
  • 类似mitmproxy的功能,但通过Burp中转
  • 实现自动加解密的同时不影响APP、网站的正常加解密逻辑

工作流程

  1. 捕获加密流量
  2. 分析加密算法
  3. 编写解密函数
  4. 配置autoDecoder实现自动解密

全自动加解密技术实现

查找加密算法

  1. 核心功能数据包被加密
  2. 从前端分析加密方式:
    • 观察URL和请求包都包含"performance"关键字
    • 直接搜索包含"performance"关键字的目录及文件

明确加密算法

  • 加密密钥(KEY): :*mU@-"S61Eujx$c
  • 密文编码方式: Base64
  • AES模式: AES/ECB/PDCS5Padding

编写解密函数

需要实现以下功能:

  1. Base64解码
  2. AES/ECB/PDCS5Padding解密
  3. 使用指定密钥:*mU@-"S61Eujx$c

技术难点

  1. 返回包格式复杂:多层JSON嵌套结构

    • 解决方案:编写递归函数提取所需value
  2. 集成实现

    • 使用Flask搭建本地服务处理解密逻辑
    • 配置autoDecoder调用本地解密服务

最终效果

成功实现:

  • 请求/响应流量自动加解密
  • 不影响正常业务流程
  • 实时解密便于安全测试

技术要点总结

  1. 加密分析:通过前端代码分析确定加密算法和参数
  2. 工具选择:autoDecoder适合Burp环境下的自动加解密
  3. 实现方式:本地服务+插件调用的架构
  4. 数据处理:处理多层嵌套JSON需要特殊逻辑

示例代码结构(伪代码)

# 解密服务示例
from flask import Flask, request
import base64
from Crypto.Cipher import AES

app = Flask(__name__)

KEY = b':*mU@-"S61Eujx$c'

@app.route('/decrypt', methods=['POST'])
def decrypt():
    encrypted_data = request.json['data']
    # Base64解码
    decoded = base64.b64decode(encrypted_data)
    # AES解密
    cipher = AES.new(KEY, AES.MODE_ECB)
    decrypted = cipher.decrypt(decoded)
    # 处理可能的填充
    return unpad(decrypted).decode('utf-8')

def unpad(s):
    return s[:-ord(s[len(s)-1:])]

autoDecoder配置要点

  1. 设置本地服务地址为解密端点
  2. 配置匹配规则(如URL包含"performance")
  3. 测试加解密链路是否通畅
  4. 验证解密后的数据格式是否正确

注意事项

  1. 密钥管理:不要在代码中硬编码密钥
  2. 错误处理:完善解密失败的处理逻辑
  3. 性能考虑:高频解密可能影响测试效率
  4. 更新维护:关注系统加密算法的变更
某系统加解密分析技术文档 前言 在一次项目测试中,发现目标系统的核心功能返回包均被加密。为方便后续测试工作,最终借助autoDecoder工具实现了流量全自动加解密。 工具介绍 autoDecoder是一款BurpSuite插件,主要功能包括: 根据自定义接口处理数据包(适用于加解密、爆破等场景) 类似mitmproxy的功能,但通过Burp中转 实现自动加解密的同时不影响APP、网站的正常加解密逻辑 工作流程 捕获加密流量 分析加密算法 编写解密函数 配置autoDecoder实现自动解密 全自动加解密技术实现 查找加密算法 核心功能数据包被加密 从前端分析加密方式: 观察URL和请求包都包含"performance"关键字 直接搜索包含"performance"关键字的目录及文件 明确加密算法 加密密钥(KEY) : :*mU@-"S61Eujx$c 密文编码方式 : Base64 AES模式 : AES/ECB/PDCS5Padding 编写解密函数 需要实现以下功能: Base64解码 AES/ECB/PDCS5Padding解密 使用指定密钥 :*mU@-"S61Eujx$c 技术难点 返回包格式复杂 :多层JSON嵌套结构 解决方案:编写递归函数提取所需value 集成实现 : 使用Flask搭建本地服务处理解密逻辑 配置autoDecoder调用本地解密服务 最终效果 成功实现: 请求/响应流量自动加解密 不影响正常业务流程 实时解密便于安全测试 技术要点总结 加密分析 :通过前端代码分析确定加密算法和参数 工具选择 :autoDecoder适合Burp环境下的自动加解密 实现方式 :本地服务+插件调用的架构 数据处理 :处理多层嵌套JSON需要特殊逻辑 示例代码结构(伪代码) autoDecoder配置要点 设置本地服务地址为解密端点 配置匹配规则(如URL包含"performance") 测试加解密链路是否通畅 验证解密后的数据格式是否正确 注意事项 密钥管理:不要在代码中硬编码密钥 错误处理:完善解密失败的处理逻辑 性能考虑:高频解密可能影响测试效率 更新维护:关注系统加密算法的变更