加密对抗靶场enctypt——labs通关
字数 1305 2025-08-20 18:17:53
加密对抗靶场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加密的分析与限制
- 组合加密的识别与分析
虽然靶场场景比实战简单,但提供了加密对抗的基础思路和方法,可作为渗透测试加密破解的入门练习。