某项目前端js解密【二】之随机秘钥如何固定
字数 1189 2025-08-29 08:31:47

固定前端JS随机秘钥的三种方法详解

一、背景介绍

在前端加密过程中,经常会遇到使用随机生成的AES秘钥进行加密的情况。本文档将详细介绍三种固定前端JS随机秘钥的方法,以便于安全测试和调试工作。

二、加密基础信息

  • 加密算法:AES
  • 加密模式:CBC
  • 偏移量(IV):"1234567812345678"(16位)
  • 秘钥长度:16位

三、固定秘钥的核心思路

从代码分析可知,加密最终使用的秘钥存储在变量t中。因此,固定秘钥的核心方法就是在秘钥生成后,重新给变量t赋一个固定的值。

四、三种固定秘钥的方法

方法一:Chrome浏览器调试工具替换JS

步骤:

  1. 打开Chrome开发者工具(F12)
  2. 切换到"Sources"(源代码)标签
  3. 点击"Overrides"(替换)选项卡
  4. 添加一个本地文件夹作为替换目录
  5. 访问目标网页,找到需要修改的JS文件
  6. 右键点击该JS文件,选择"Save for overrides"(保存并覆盖)
  7. 在本地副本中修改JS代码,固定变量t的值
  8. 返回"Overrides"选项卡,确认替换文件已加载
  9. 硬性重新加载网站(Ctrl+F5或Cmd+Shift+R)

关键点:

  • 必须使用硬性重新加载才能使替换生效
  • 修改后的JS文件会保存在本地指定目录

方法二:BurpSuite拦截修改JS响应

步骤:

  1. 配置BurpSuite:
    • 进入"Proxy" → "Options"
    • 勾选"Intercept Server Responses"选项
  2. 确保浏览器已关闭调试工具的JS替换功能
  3. 清空浏览器缓存并硬性重新加载页面
  4. 使用BurpSuite拦截JS文件的响应包
  5. 在响应中找到变量t的定义,修改为固定值(如"8888999988889999")
  6. 放行修改后的响应
  7. 浏览器会缓存修改后的JS文件

关键点:

  • 必须清空缓存并硬性加载才能确保获取最新JS
  • 修改后的JS会被浏览器缓存,后续请求会直接使用

方法三:使用ReRes浏览器插件

步骤:

  1. 安装Chrome插件"ReRes"
  2. 配置ReRes规则:
    • 设置原始JS文件URL
    • 映射到本地修改后的JS文件
  3. 在本地JS文件中固定变量t的值
  4. 刷新页面,插件会自动替换加载的JS文件

注意事项:

  • 此方法在macOS上可能存在问题,Windows系统上可用
  • 操作相对简单,适合快速测试

五、验证方法

固定秘钥后,可以通过以下步骤验证:

  1. 在页面上输入测试数据(如手机号)
  2. 抓取加密后的请求报文
  3. 使用固定的秘钥进行解密
  4. 确认解密结果与原始输入一致

六、总结

三种方法各有优缺点:

  • Chrome调试工具:适合开发调试,无需额外工具
  • BurpSuite:适合安全测试,可与其他测试流程结合
  • ReRes插件:操作简单,但跨平台支持有限

选择哪种方法取决于具体的使用场景和测试需求。在实际应用中,可以根据情况灵活选择最适合的方法。

固定前端JS随机秘钥的三种方法详解 一、背景介绍 在前端加密过程中,经常会遇到使用随机生成的AES秘钥进行加密的情况。本文档将详细介绍三种固定前端JS随机秘钥的方法,以便于安全测试和调试工作。 二、加密基础信息 加密算法:AES 加密模式:CBC 偏移量(IV):"1234567812345678"(16位) 秘钥长度:16位 三、固定秘钥的核心思路 从代码分析可知,加密最终使用的秘钥存储在变量 t 中。因此,固定秘钥的核心方法就是在秘钥生成后,重新给变量 t 赋一个固定的值。 四、三种固定秘钥的方法 方法一:Chrome浏览器调试工具替换JS 步骤: 打开Chrome开发者工具(F12) 切换到"Sources"(源代码)标签 点击"Overrides"(替换)选项卡 添加一个本地文件夹作为替换目录 访问目标网页,找到需要修改的JS文件 右键点击该JS文件,选择"Save for overrides"(保存并覆盖) 在本地副本中修改JS代码,固定变量 t 的值 返回"Overrides"选项卡,确认替换文件已加载 硬性重新加载网站(Ctrl+F5或Cmd+Shift+R) 关键点: 必须使用硬性重新加载才能使替换生效 修改后的JS文件会保存在本地指定目录 方法二:BurpSuite拦截修改JS响应 步骤: 配置BurpSuite: 进入"Proxy" → "Options" 勾选"Intercept Server Responses"选项 确保浏览器已关闭调试工具的JS替换功能 清空浏览器缓存并硬性重新加载页面 使用BurpSuite拦截JS文件的响应包 在响应中找到变量 t 的定义,修改为固定值(如"8888999988889999") 放行修改后的响应 浏览器会缓存修改后的JS文件 关键点: 必须清空缓存并硬性加载才能确保获取最新JS 修改后的JS会被浏览器缓存,后续请求会直接使用 方法三:使用ReRes浏览器插件 步骤: 安装Chrome插件"ReRes" 配置ReRes规则: 设置原始JS文件URL 映射到本地修改后的JS文件 在本地JS文件中固定变量 t 的值 刷新页面,插件会自动替换加载的JS文件 注意事项: 此方法在macOS上可能存在问题,Windows系统上可用 操作相对简单,适合快速测试 五、验证方法 固定秘钥后,可以通过以下步骤验证: 在页面上输入测试数据(如手机号) 抓取加密后的请求报文 使用固定的秘钥进行解密 确认解密结果与原始输入一致 六、总结 三种方法各有优缺点: Chrome调试工具:适合开发调试,无需额外工具 BurpSuite:适合安全测试,可与其他测试流程结合 ReRes插件:操作简单,但跨平台支持有限 选择哪种方法取决于具体的使用场景和测试需求。在实际应用中,可以根据情况灵活选择最适合的方法。