前置说明
JS逆向与安全(分析已知js的行为)
事实上,前端的逆向通俗来说就是在浏览器的调试器中,对存在的前端代码(这里的前端代码包括html、js、css见上图差异对比)进行分析,通过分析其逻辑获取其中的路由、加密方式、敏感信息泄露等
应用场景:
例子1:某登录框加密传输时,枚举爆破攻击手法
例子2:某电商前端计算折扣,逆向JS篡改价格
例子3:某操作验证码认证时,生成验证码可预测
例子4:某平台的X-Sign签名,逆向后可构造任意请求
例子5:某应用参数加密时,逆向算法可改Payload测试
JS文件与安全(主要是发现资产)
用项目提取JS信息
用项目发现更多JS
开发者工具使用

F12面板(常用)
网络(开启保留日志与停用缓存)
源代码/来源
控制台
元素等
作用域
简单来说就是运行后相关的数据值
调用堆栈
简单来说就是代码的执行逻辑顺序
断点调试
https://mp.weixin.qq.com/s/E-eip5LXjGHFYmNlrNK-bg
案例分析
xiaodi8登陆断点
进入后台登陆页面


注意先打开开发者工具,再进行流程,否则包不全

简单断点

断点到此,还显示明文密码,说明加密代码在此之后
可以根据作用域的数据变化,找到关键代码



某应用几种断点调试法分析(普通断点-调用堆栈少可以找)
启动器-调用堆栈:是从下往上执行的
js是前端语言,先构造加密,在发起请求(在send发送数据前就已经加密好了)
像是jquery.js等官方的js一般不会有加密逻辑,不是加密文件,可以分析其他
找到关键代码段,可以在控制台直接尝试调用,看是否加密成功
某应用加密算法调用堆栈分析(DOM型断点、XHR断点-调用堆栈多不易找时)


右键“登录”按钮,选择审查元素

当有改动时就断点

XHR断点-网址包含以下内容时断点
login登录包请求到/as/user/login
所以添加内容为/as/user/login

已经执行到这个地址了,请求包已经发了,加密在之前产生,所以要向前分析




某应用JS文件代码分析挖掘
参考:https://mp.weixin.qq.com/s/E-eip5LXjGHFYmNlrNK-bg
本节知识点
JS逆向-F12开发者工具-使用面板指南
JS逆向-调用堆栈&断点方法-流程&调试
