加密对抗靶场enctypt——labs通关
字数 1305 2025-08-20 18:17:53

加密对抗靶场enctypt——labs通关教学文档

前言

本教学文档基于Xz开发的前端加密对抗练习靶场,涵盖非对称加密、对称加密、加签以及禁止重放的测试场景,包括AES、DES、RSA等加密算法的实战练习。本靶场适合渗透测试加解密入门学习。

1. AES固定key场景

场景描述

  • 最简单的加密场景,key和iv(初始化向量)在代码中写死
  • 无需额外获取密钥即可进行解密测试

实战步骤

  1. 直接查看前端JavaScript代码,找到写死的key和iv值
  2. 使用找到的key和iv进行解密操作

2. AES服务端获取key场景

场景描述

  • key和iv由服务端动态生成
  • 客户端通过请求server_generate_key.php获取key和iv
  • 同一session下key和iv保持不变

实战步骤

  1. 定位加密函数

    • 查看按钮绑定的fetchAndSendDataAes方法
  2. 获取密钥

    • 直接访问server_generate_key.php获取base64编码的key和iv
  3. 配置autoDecoder

    • 设置正确的解密方法
    • 主页面配置关键字为"password"(仅登录场景)
  4. 测试解密

    • 在Repeater中测试解密是否成功
  5. 爆破攻击

    • 使用intruder模块进行登录爆破尝试

3. RSA加密场景

场景描述

  • 使用RSA对整个数据包进行加密
  • 靶场中无法获取私钥,只能加密无法解密
  • 实战中函数参数更复杂,需要调试获取

实战步骤

  1. 分析加密函数

    • 查看使用RSA加密的JavaScript代码
  2. 调试获取参数

    • 在浏览器开发者工具中设置断点
    • 观察变量值,获取加密参数
  3. 配置autoDecoder

    • 设置RSA解密方法(虽然无法获取私钥)
  4. 爆破测试

    • 在intruder模块进行爆破测试

4. AES+RSA组合加密场景

场景描述

  • 对称加密(AES)与非对称加密(RSA)组合使用
  • 每次请求的AES key都会变化
  • key和iv经过RSA加密传输
  • 无法获取RSA私钥时难以解密

加密流程分析

  1. 客户端生成随机的AES key和iv
  2. 使用RSA公钥加密AES的key和iv
  3. 使用AES加密实际数据
  4. 将加密后的key、iv和数据一起发送到服务端

实战挑战

  • 由于无法获取RSA私钥,难以解密变化的AES key
  • 靶场仅覆盖登录模块,不包含越权测试场景

通用渗透测试技巧

  1. 加密识别

    • 通过数据包格式判断加密类型
    • 固定格式通常是对称加密
    • 长随机字符串可能是非对称加密
  2. 调试方法

    • 使用浏览器开发者工具设置断点
    • 观察加密过程中的变量值
    • 追踪密钥生成和传递过程
  3. 工具配置

    • 正确配置autoDecoder的解密方法
    • 根据场景选择合适的关键字
    • 测试解密功能是否正常工作
  4. 爆破攻击

    • 在确认解密成功后进行爆破
    • 使用intruder模块设置有效载荷

总结

本靶场涵盖了从简单到复杂的加密对抗场景,通过实践可以掌握:

  1. 固定密钥AES的解密方法
  2. 动态获取密钥的AES场景应对
  3. RSA加密的分析与限制
  4. 组合加密的识别与分析

虽然靶场场景比实战简单,但提供了加密对抗的基础思路和方法,可作为渗透测试加密破解的入门练习。

加密对抗靶场enctypt——labs通关教学文档 前言 本教学文档基于Xz开发的前端加密对抗练习靶场,涵盖非对称加密、对称加密、加签以及禁止重放的测试场景,包括AES、DES、RSA等加密算法的实战练习。本靶场适合渗透测试加解密入门学习。 1. AES固定key场景 场景描述 最简单的加密场景,key和iv(初始化向量)在代码中写死 无需额外获取密钥即可进行解密测试 实战步骤 直接查看前端JavaScript代码,找到写死的key和iv值 使用找到的key和iv进行解密操作 2. AES服务端获取key场景 场景描述 key和iv由服务端动态生成 客户端通过请求 server_generate_key.php 获取key和iv 同一session下key和iv保持不变 实战步骤 定位加密函数 : 查看按钮绑定的 fetchAndSendDataAes 方法 获取密钥 : 直接访问 server_generate_key.php 获取base64编码的key和iv 配置autoDecoder : 设置正确的解密方法 主页面配置关键字为"password"(仅登录场景) 测试解密 : 在Repeater中测试解密是否成功 爆破攻击 : 使用intruder模块进行登录爆破尝试 3. RSA加密场景 场景描述 使用RSA对整个数据包进行加密 靶场中无法获取私钥,只能加密无法解密 实战中函数参数更复杂,需要调试获取 实战步骤 分析加密函数 : 查看使用RSA加密的JavaScript代码 调试获取参数 : 在浏览器开发者工具中设置断点 观察变量值,获取加密参数 配置autoDecoder : 设置RSA解密方法(虽然无法获取私钥) 爆破测试 : 在intruder模块进行爆破测试 4. AES+RSA组合加密场景 场景描述 对称加密(AES)与非对称加密(RSA)组合使用 每次请求的AES key都会变化 key和iv经过RSA加密传输 无法获取RSA私钥时难以解密 加密流程分析 客户端生成随机的AES key和iv 使用RSA公钥加密AES的key和iv 使用AES加密实际数据 将加密后的key、iv和数据一起发送到服务端 实战挑战 由于无法获取RSA私钥,难以解密变化的AES key 靶场仅覆盖登录模块,不包含越权测试场景 通用渗透测试技巧 加密识别 : 通过数据包格式判断加密类型 固定格式通常是对称加密 长随机字符串可能是非对称加密 调试方法 : 使用浏览器开发者工具设置断点 观察加密过程中的变量值 追踪密钥生成和传递过程 工具配置 : 正确配置autoDecoder的解密方法 根据场景选择合适的关键字 测试解密功能是否正常工作 爆破攻击 : 在确认解密成功后进行爆破 使用intruder模块设置有效载荷 总结 本靶场涵盖了从简单到复杂的加密对抗场景,通过实践可以掌握: 固定密钥AES的解密方法 动态获取密钥的AES场景应对 RSA加密的分析与限制 组合加密的识别与分析 虽然靶场场景比实战简单,但提供了加密对抗的基础思路和方法,可作为渗透测试加密破解的入门练习。