一次前端加密逆向分析
字数 1058 2025-08-18 11:36:36

前端加密逆向分析教学文档

1. 背景介绍

本文档基于某网站登录界面的前端加密逆向分析案例,详细讲解如何通过浏览器开发者工具定位加密函数、分析加密算法,并最终实现加密/解密脚本的编写过程。

2. 初步观察

  1. 目标网站登录界面选择"密码登录"方式
  2. 抓包发现:
    • 请求中没有明文账户密码
    • 有一串Base64编码数据
    • 响应内容为"手机号未注册"
  3. Base64在线解码失败,推测前端进行了数据包加密

3. 加密过程分析

3.1 使用浏览器开发者工具定位加密函数

  1. 打开浏览器开发者工具(F12)
  2. 在Sources面板中查找关键文件:
    • Index.js:判断手机号是否已注册的逻辑
    • Request.js:包含请求拦截器

3.2 分析请求拦截器

Request.js中发现请求拦截器,关键信息:

  • config参数包含重要信息:
    • data:登录时输入的手机号
    • post:数据请求方式
  • 拦截器功能推测:
    1. 向服务器发送请求判断手机号是否注册
    2. 根据响应决定是否发送包含手机号和密码的登录请求

3.3 定位加密函数

通过调试追踪,找到明文转密文的关键函数:

  • 加密方法:Encrypt
  • 位置:AES.js第14行

4. 加密算法分析

AES.js中发现:

  • 使用AES加密算法
  • 加密模式:ECB模式
  • 填充方式:PKCS7补位
  • 包含密钥(key)信息

5. 解密与加密脚本编写

5.1 解密过程

  1. 根据加密算法确定解密方法
  2. 编写解密脚本
  3. 成功解密出明文格式

5.2 加密脚本编写

基于以下信息编写加密脚本:

  1. 已确定的明文格式
  2. 加密算法(AES)
  3. 加密模式(ECB)
  4. 填充方式(PKCS7)
  5. 密钥信息

6. 实际应用

通过逆向分析结果可以实现:

  1. 对已注册手机号的枚举
  2. 模拟登录请求的构造
  3. 自动化测试脚本的编写

7. 关键点总结

  1. 加密定位:通过浏览器开发者工具逐步追踪加密函数
  2. 算法识别:AES/ECB/PKCS7组合是常见的前端加密方案
  3. 请求流程:先验证手机号是否注册,再决定是否发送完整登录请求
  4. 脚本编写:需要准确还原加密流程和参数

8. 防御建议

针对此类逆向分析,网站可采取以下防护措施:

  1. 使用动态密钥
  2. 增加代码混淆
  3. 实现反调试机制
  4. 采用非对称加密方案
  5. 添加请求签名验证

9. 扩展思考

  1. 如何应对更复杂的加密方案(如RSA+AES组合加密)
  2. 如何处理动态生成的密钥
  3. 如何绕过常见的反调试技术
  4. 自动化逆向分析工具的使用

通过本案例的系统分析,可以掌握前端加密逆向的基本方法和流程,为类似场景的安全分析提供参考。

前端加密逆向分析教学文档 1. 背景介绍 本文档基于某网站登录界面的前端加密逆向分析案例,详细讲解如何通过浏览器开发者工具定位加密函数、分析加密算法,并最终实现加密/解密脚本的编写过程。 2. 初步观察 目标网站登录界面选择"密码登录"方式 抓包发现: 请求中没有明文账户密码 有一串Base64编码数据 响应内容为"手机号未注册" Base64在线解码失败,推测前端进行了数据包加密 3. 加密过程分析 3.1 使用浏览器开发者工具定位加密函数 打开浏览器开发者工具(F12) 在Sources面板中查找关键文件: Index.js :判断手机号是否已注册的逻辑 Request.js :包含请求拦截器 3.2 分析请求拦截器 在 Request.js 中发现请求拦截器,关键信息: config 参数包含重要信息: data :登录时输入的手机号 post :数据请求方式 拦截器功能推测: 向服务器发送请求判断手机号是否注册 根据响应决定是否发送包含手机号和密码的登录请求 3.3 定位加密函数 通过调试追踪,找到明文转密文的关键函数: 加密方法: Encrypt 位置: AES.js 第14行 4. 加密算法分析 在 AES.js 中发现: 使用AES加密算法 加密模式:ECB模式 填充方式:PKCS7补位 包含密钥( key )信息 5. 解密与加密脚本编写 5.1 解密过程 根据加密算法确定解密方法 编写解密脚本 成功解密出明文格式 5.2 加密脚本编写 基于以下信息编写加密脚本: 已确定的明文格式 加密算法(AES) 加密模式(ECB) 填充方式(PKCS7) 密钥信息 6. 实际应用 通过逆向分析结果可以实现: 对已注册手机号的枚举 模拟登录请求的构造 自动化测试脚本的编写 7. 关键点总结 加密定位 :通过浏览器开发者工具逐步追踪加密函数 算法识别 :AES/ECB/PKCS7组合是常见的前端加密方案 请求流程 :先验证手机号是否注册,再决定是否发送完整登录请求 脚本编写 :需要准确还原加密流程和参数 8. 防御建议 针对此类逆向分析,网站可采取以下防护措施: 使用动态密钥 增加代码混淆 实现反调试机制 采用非对称加密方案 添加请求签名验证 9. 扩展思考 如何应对更复杂的加密方案(如RSA+AES组合加密) 如何处理动态生成的密钥 如何绕过常见的反调试技术 自动化逆向分析工具的使用 通过本案例的系统分析,可以掌握前端加密逆向的基本方法和流程,为类似场景的安全分析提供参考。