当前位置: 首页 > news >正文

JS 逆向太费劲,试试 JS 注入!

在 Web 逆向分析场景中,后端接口返回数据加密是常见的防护手段。当遇到前端 JavaScript 负责解密但难以定位解密逻辑的情况时,传统的静态代码分析往往效率低下。此时,JS 注入技术能通过动态劫持运行时函数,快速暴露加密链路中的关键节点。本文结合具体案例,解析如何利用函数钩子定位解密逻辑,并探讨服务端的防御思路。

一、JS 注入的核心原理:劫持函数执行链路

JS 注入的本质是利用 JavaScript 的动态特性,在运行时替换原生函数或自定义函数,通过插入日志输出、断点调试等钩子,捕获目标函数的调用上下文。以 JSON 解析为例,当后端返回的密文通过JSON.parse进行反序列化时,可通过以下代码劫持该过程:

这段代码通过函数劫持实现了对JSON.parse的无侵入式监控。当浏览器执行到加密数据的解析逻辑时,注入的钩子会触发。

二、实战案例:某道翻译密文定位

以有道翻译接口为例,其返回结果经过加密处理。

常规逆向思路需从全局搜索atobJSON.parse等关键词,但可能陷入多层混淆代码。此时通过 JS 注入JSON.parse,可快速定位解密链路:

  1. 注入钩子后刷新页面,浏览器控制台会输出JSON参数===及原始密文;
  2. 触发断点后查看调用堆栈,通常能看到类似decryptData -> parseResponse -> JSON.parse的调用链;
  3. 沿着堆栈向上追溯,即可找到decryptData函数中包含的 Base64 解码、AES 解密等核心逻辑。

此方法相比静态分析的优势在于:无需预先知道解密函数名称或加密算法类型,直接从数据流动的末端(反序列化环节)逆向推导加密链路

三、防御策略:定制化反序列化方案

对于服务端开发者而言,防止 JS 注入攻击的关键在于避免使用标准化的反序列化工具链。常见防御手段包括:

抛弃公用轮子,手写反序列化逻辑

不使用原生JSON.parse,而是手动实现 JSON 解析器,例如通过正则表达式分割键值对、处理转义字符等。

加密层与反序列化层解耦

将数据解密与反序列化分为两个独立步骤,即使逆向者劫持了JSON.parse,也只能捕获到已经解密的明文,无法追溯到真正的解密函数。

四、技术总结:动态分析的效率革命

JS 注入本质上是一种动态白盒分析技术,通过劫持运行时环境打破逆向分析的信息差。对于开发者而言,理解其原理有助于设计更健壮的防御体系 —— 核心思路是避免依赖标准化工具链,通过定制化逻辑增加逆向成本。而对于逆向工程师,合理运用注入技术可大幅提升复杂场景下的分析效率,尤其适用于混淆严重、代码结构不清晰的前端系统。

http://www.xdnf.cn/news/688645.html

相关文章:

  • 服务器上用脚本跑python深度学习的注意事项(ubantu系统)
  • 【第2章 绘制】2.6 阴影
  • 基于stm32LORA无线抄表系统仿真
  • 人工智能在智能建筑中的创新应用与未来趋势
  • 将docker容器保存为镜像,让后将镜像打包保存到本地
  • WPF的基础控件:布局控件(StackPanel DockPanel)
  • React+Antd全局加载遮罩工具
  • 2. 数据结构基本概念 (2)
  • LLM 对齐新范式:深入解析 DPO (Direct Preference Optimization) 的原理与实践
  • Microsoft的在word中选择文档中的所有表格进行字体和格式的调整时的解决方案
  • 180 度 = π 弧度
  • 2025吉林ccpc【部分题解】
  • c++第三天(对象与构造函数)
  • ICDMC 2025:创新媒体模式,迎接数字时代的挑战
  • Redission学习专栏(一):快速入门及核心API实践
  • CORS跨域资源共享解析
  • 算法刷题记录:滑动窗口经典题目解析
  • 【大模型原理与技术-毛玉仁】第三章 Prompt工程
  • web-css
  • 20250528-C#知识:函数简介及函数重载
  • 外部访问可视化监控 Grafana (Windows版本)
  • 扇形 圆形 面积公式
  • 如何在WordPress中选择最佳Elementor主题:专家指南
  • 前端大文件上传-断点续传
  • 影刀RPA-17- 列表练习
  • 使用 Shell 脚本实现 Spring Boot 项目自动化部署到 Docker(Ubuntu 服务器)
  • 如果是在服务器的tty2终端怎么查看登陆服务器的IP呢
  • 《vue.js快速入门》链接摘抄整理
  • 深入理解SQLMesh中的Lookback、Forward-Only和Auto-Restatement特性
  • 【GlobalMapper精品教程】095:如何获取无人机照片的拍摄方位角