思维导图
见 41WEB攻防
知识点:
- 66、JavaScript-作用域&调用堆栈
- 67、JavaScript-断点调试&全局搜索
- 68、JavaScript-Burp算法模块使用
章节点:
Web层面:Web2.0 & Web3.0
语言安全:JS,ASP,PHP,NET,Java,Python等(包含框架类)
OWTOP10:注入,文件安全,XSS,RCE,XXE,CSRF,SSRF,反序列化,未授权访问等
业务逻辑:水平垂直越权,支付签约&购买充值,找回机制,数据并发,验证码&弱口令等
特殊漏洞:JWT,CRLF,CORS,重定向,JSONP回调,域名接管,DDOS,接口枚举等
关键技术:POP链构造,JS逆向调试,NET反编译,JAVA反编译,代码解密,数据解密等
Web3.0:未待完续筹备中….
前置知识
1、作用域:(本地&全局)
简单来说就是运行后相关的数据值2、调用堆栈:(由下到上)
简单来说就是代码的执行逻辑顺序3、常见分析调试:
-代码全局搜索
-文件流程断点
-代码标签断点
-XHR提交断点4、为什么要学这个?
-针对JS开发应用
-密码登录枚举爆破
-参数提交漏洞检测
-泄漏URL有更多测试
JS逆向-流程&全局搜索-登录算法
流程断点:审查元素抓网络请求包发起程序
全局搜索:通过抓包参数名进行代码全局搜索
JS逆向-标签&XHR断点-登录算法
标签断点:审查元素对应标签按钮加入断点
XHR断点:审查元素源代码加入XHR断点配置
JS逆向-结合BurpSuite-插件引用
1、下载phantomjs并设置环境变量
https://phantomjs.org/download.html2、BurpSuite加载jsEncrypter插件
https://github.com/c0ny1/jsEncrypter/releases3、对逆向的加密算法提取JS文件及代码
1
2
3
4
5
6
7JSEncrypt.js
var r = new JSEncrypt,
o = "xxxxxxxxx";
r.setPublicKey(o);
var s = r.encrypt(password)
return s4、讲代码写入到模版中(引用JS和调用加密)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18var wasSuccessful = phantom.injectJs('JSEncrypt.js');
function encrypt(password){
var r = new JSEncrypt,
o = "xxxxxxxxx";
r.setPublicKey(o);
var s = r.encrypt(password)
return s
}
// 处理函数
function js_encrypt(payload){
var newpayload;
/**********在这里编写调用加密函数进行加密的代码************/
var newpayload=encrypt(payload)
/**********************************************************/
return newpayload;
}5、运行刚写入的模版文件后插件连接测试
phantomjs xxxxx.js
- 6、正常设置发包后选择引用插件选项