前言
本文介绍 JavaScript 逆向工程中的断点调试技巧,包括作用域、调用堆栈和 XHR 断点的使用。通过实际案例演示了如何定位前端加密算法(如 AES、RSA)及绕过签名校验。此外,还分享了基于企业 SRC 的并发漏洞挖掘实战,涉及优惠券领取场景的安全测试。
如何找到加密算法
主要通过浏览器开发者工具(F12)调试 JS 前端代码。需要理解以下三个功能:
一、作用域(Scope)
作用域是指变量、函数和对象在代码中可访问的范围。
主要类型:
- 全局作用域:在所有函数和代码块之外声明的变量。
const globalVar = "我是全局变量";
function test() {
console.log(globalVar);
}
- 函数作用域:在函数内部声明的变量。
function test() {
const funcVar = "我是函数内变量";
console.log(funcVar);
}
- 块级作用域:由
{}包裹的代码块中用let/const声明的变量。
if (true) {
const blockVar = "我是块内变量";
console.log(blockVar);
}
二、调用堆栈(Call Stack)
调用堆栈是 JavaScript 引擎用于管理函数调用顺序的数据结构。
示例:
function a() { console.log("a 开始"); b(); console.log("a 结束"); }
function b() { .(); (); .(); }
() { .(); }
();


