一、核心场景:破解 AES 加密通信的关键需求
在渗透测试中,遇到 API 数据采用 AES 加密传输的场景时,需通过脚本实现自动化解密,核心痛点包括:
- 密文实时解析:Burp 拦截的加密请求体需快速解密以分析业务逻辑
- 加解密流程闭环:从请求加密发送到响应解密验证的全链路自动化
- 密钥动态管理:支持硬编码密钥、环境变量读取等多种密钥加载方式
结合真实脚本aesdecode.py
与burpy_aes256.py
,构建完整的 AES 加解密实战框架,并实现与 Burp 的深度联动。
二、AES 解密核心算法实现(基于aesdecode.py
)
1. 基础解密函数设计
from Crypto.Cipher import AES from Crypto.Util.Padding import unpad import base64 # 密钥定义:16字节HEX字符串转字节(AES-128) AES_KEY = bytes.fromhex('E2842C540F0810C3F11F42427F48A3DE') def aes_ecb_decrypt(ciphertext: str, key: bytes) -> str: """ ECB模式AES解密(含Base64解码与PKCS7去填充) :param ciphertext: Base64编码的密文字符串 :param key: 16/24/32字节的AES密钥(字节类型) :return: 解密后的明文字符串 """ # 1. Base64解码密文 cipher_bytes = base64.b64decode(ciphertext) # 2. 创建ECB模式解密器 cipher = AES.new(key, AES.MODE_ECB) # 3. 执行解密 decrypted_bytes = cipher.decrypt(cipher_bytes) # 4. 去除PKCS7填充 plaintext_bytes = unpad(decrypted_bytes, AES.block_size) # 5. 字节转UTF-8字符串 return plaintext_bytes.decode('utf-8') # 示例解密调用 sample_cipher = "zWJLUIlnTNe4SnZqvnk0BbS1WHyi8AxZnCyFw1VuZ+vuKMHczygw6a9Owd89Dl6NNAobn/zkWw4BFDQVLX0uUg==" print(f"原始密文: {sample_cipher}") print(f"解密结果: {aes_ecb_decrypt(sample_cipher, AES_KEY)}")
2. 关键技术点解析
- ECB 模式特性:
- 相同明文块生成相同密文块,存在模式缺陷,实际应用需验证是否为弱加密场景
- 适合单次短数据解密,如 API 参数解密
- 填充算法:
- 使用
unpad
自动处理 PKCS7 填充,兼容标准加密接口 - 若服务端使用非标准填充(如 ISO 10126),需自定义去填充逻辑
- 使用
三、Burp 联动框架封装(基于burpy_aes256.py
)
1. 全功能加解密类设计
import json from Crypto.Cipher import AES from Crypto.Util.Padding import pad, unpad import base64 class BurpAESHandler: def __init__(self, key: str = None): """ 初始化AES处理器 :param key: 16/24/32字节HEX格式密钥(默认使用硬编码密钥) """ self.key = bytes.fromhex(key) if key else AES_KEY def encrypt_request(self, header: dict, body: dict) -> tuple: """ 加密HTTP请求体(JSON转AES-E
4A评测 - 免责申明
本站提供的一切软件、教程和内容信息仅限用于学习和研究目的。
不得将上述内容用于商业或者非法用途,否则一切后果请用户自负。
本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑或手机中彻底删除上述内容。
如果您喜欢该程序,请支持正版,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。敬请谅解!
程序来源网络,不确保不包含木马病毒等危险内容,请在确保安全的情况下或使用虚拟机使用。
侵权违规投诉邮箱:4ablog168#gmail.com(#换成@)