记一次测试未授权接口需要的AES加密逆向
字数 981 2025-12-03 12:02:21

AES加密逆向分析实战教学文档

1. 背景介绍

在渗透测试过程中,发现目标网站存在未授权接口,但请求数据包采用AES加密。需要逆向分析加密算法才能构造有效请求进行后续测试。

2. 加密数据包分析

  • 原始请求体为加密数据
  • 错误参数会返回特定报错信息
  • 需逆向加密算法才能构造有效测试数据

3. 加密函数定位

3.1 关键字搜索

使用encryptCode作为关键字进行搜索,发现唯一匹配结果。

3.2 函数分析

加密函数接收三个参数:

ca.encrypt(param1, param2, param3)

4. 加密算法识别

4.1 跟踪函数实现

通过悬停查看函数定义,确认采用AES加密算法。

4.2 参数含义分析

  • 参数k:待加密的明文数据
  • 参数2和3:IV(初始向量)和KEY(加密密钥)

4.3 断点验证

通过断点调试确认:

  • 两个参数值相同(IV和KEY使用相同值)

5. AES-CBC模式详解

5.1 加密参数组成

  1. 明文(Plaintext)

    • 需要加密的原始数据
  2. 初始向量(IV)

    • 128位随机值
    • 与第一个明文分组进行异或操作
    • 确保相同明文产生不同密文
  3. 填充方式(Padding)

    • 默认采用PKCS7填充
    • 当明文长度不是16字节倍数时自动填充

5.2 解密参数要求

  1. 密文(Ciphertext)
  2. 加密时使用的相同密钥
  3. 相同的初始向量(IV)
  4. 相同的填充方式(PKCS7)

6. 加密算法复现

6.1 参数获取

通过逆向分析获得:

  • KEY:加密密钥
  • IV:初始向量(与KEY相同)

6.2 加密验证

使用获得的KEY和IV进行AES-CBC加密,结果与原始加密数据完全一致。

7. 技术要点总结

7.1 关键逆向技巧

  1. 关键字搜索法:使用encryptCode等明显标识定位加密函数
  2. 函数跟踪法:通过悬停查看函数定义识别算法类型
  3. 断点调试法:动态分析参数传递和值内容

7.2 AES-CBC特性

  • 默认采用PKCS7填充方式
  • IV需要与密钥一起保存或传输
  • 加解密双方参数必须完全一致

8. 实战应用

成功逆向后,可以:

  1. 构造有效的加密请求包
  2. 测试未授权接口的安全性
  3. 进行进一步的渗透测试操作

9. 注意事项

  1. 不同系统可能采用不同的默认填充方式
  2. IV的随机性对安全性至关重要
  3. 实际测试中需确认具体的加密模式配置

通过本案例的完整分析,展示了从加密数据包发现到算法逆向的完整流程,为类似场景的渗透测试提供了可复用的方法论。

AES加密逆向分析实战教学文档 1. 背景介绍 在渗透测试过程中,发现目标网站存在未授权接口,但请求数据包采用AES加密。需要逆向分析加密算法才能构造有效请求进行后续测试。 2. 加密数据包分析 原始请求体为加密数据 错误参数会返回特定报错信息 需逆向加密算法才能构造有效测试数据 3. 加密函数定位 3.1 关键字搜索 使用 encryptCode 作为关键字进行搜索,发现唯一匹配结果。 3.2 函数分析 加密函数接收三个参数: 4. 加密算法识别 4.1 跟踪函数实现 通过悬停查看函数定义,确认采用AES加密算法。 4.2 参数含义分析 参数k:待加密的明文数据 参数2和3:IV(初始向量)和KEY(加密密钥) 4.3 断点验证 通过断点调试确认: 两个参数值相同(IV和KEY使用相同值) 5. AES-CBC模式详解 5.1 加密参数组成 明文(Plaintext) 需要加密的原始数据 初始向量(IV) 128位随机值 与第一个明文分组进行异或操作 确保相同明文产生不同密文 填充方式(Padding) 默认采用PKCS7填充 当明文长度不是16字节倍数时自动填充 5.2 解密参数要求 密文(Ciphertext) 加密时使用的相同密钥 相同的初始向量(IV) 相同的填充方式(PKCS7) 6. 加密算法复现 6.1 参数获取 通过逆向分析获得: KEY:加密密钥 IV:初始向量(与KEY相同) 6.2 加密验证 使用获得的KEY和IV进行AES-CBC加密,结果与原始加密数据完全一致。 7. 技术要点总结 7.1 关键逆向技巧 关键字搜索法 :使用 encryptCode 等明显标识定位加密函数 函数跟踪法 :通过悬停查看函数定义识别算法类型 断点调试法 :动态分析参数传递和值内容 7.2 AES-CBC特性 默认采用PKCS7填充方式 IV需要与密钥一起保存或传输 加解密双方参数必须完全一致 8. 实战应用 成功逆向后,可以: 构造有效的加密请求包 测试未授权接口的安全性 进行进一步的渗透测试操作 9. 注意事项 不同系统可能采用不同的默认填充方式 IV的随机性对安全性至关重要 实际测试中需确认具体的加密模式配置 通过本案例的完整分析,展示了从加密数据包发现到算法逆向的完整流程,为类似场景的渗透测试提供了可复用的方法论。