【第63课】JS应用&算法逆向&三重断点调试&调用堆栈&BP插件发包&安全结合

免责声明

本文发布的工具和脚本,仅用作测试和学习研究,禁止用于商业用途,不能保证其合法性,准确性,完整性和有效性,请根据情况自行判断。

如果任何单位或个人认为该项目的脚本可能涉嫌侵犯其权利,则应及时通知并提供身份证明,所有权证明,我们将在收到认证文件后删除相关内容。

文中所涉及的技术、思路及工具等相关知识仅供安全为目的的学习使用,任何人不得将其应用于非法用途及盈利等目的,间接使用文章中的任何工具、思路及技术,我方对于由此引起的法律后果概不负责。

知识点:

1、JavaScript-作用域&调用堆栈
2、JavaScript-断点调试&全局搜索
3、JavaScript-Burp算法模块使用

在这里插入图片描述

前置知识

在这里插入图片描述

1、作用域:(本地&全局)

简单来说就是运行后相关的数据值

2、调用堆栈:(由下到上)

简单来说就是代码的执行逻辑顺序

3、常见分析调试:

这四种方法针对不同对象(搜索一般用来对付简单的,复杂点的就得用断点了)
-代码全局搜索
-文件流程断点(执行的代码经过哪些文件)
-代码标签断点
-XHR提交断点

4、为什么要学这个?

-针对JS开发应用
-密码登录枚举爆破
-参数提交漏洞检测(sql注入等)
-泄漏URL有更多测试

一、演示案例-JS逆向-断点&全局搜索-登录算法

测试域名:
申通快递会员中心-登录

在这里插入图片描述

数据被加密对安全测试的干扰:

因为服务端接收到数据的时候会对该数据进行解密处理,如果用户提交的数据没有进行加密而是直接以明文方式传输给服务端,服务端在对这个明文进行解密操作得出来的就是一串乱码,无论用户密码是否正确肯定都会失败。
  • 1

全局搜索:通过抓包参数名或者路径名进行代码全局搜索

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

文件流程断点:审查元素抓网络请求包发起程序

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

XHR(xmlhttprequet)断点:审查元素源代码加入XHR断点配置

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

二、演示案例-JS逆向-代码标签&XHR断点-登录算法

测试域名:
交我算平台

代码标签断点:审查元素对应标签按钮加入断点(有的网站能用有的不能用,区别就在于HTML写的表单不一样导致) 不推荐

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

文件流程断点:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
最终目的不是在控制台运行,而是把整个加密代码运行出来
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

XHR断点:审查元素源代码加入XHR断点配置

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

三、演示案例-JS逆向-结合BurpSuite-插件引用

在这里插入图片描述
实现在burp里加密爆破

1、下载phantomjs并设置环境变量

Download PhantomJS
在这里插入图片描述
打开控制面板-系统-高级设置
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2、BurpSuite加载jsEncrypter插件

Releases · c0ny1/jsEncrypter · GitHub
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3、对逆向的加密算法提取JS文件及代码

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4、将代码写入到模版中(引用JS和调用加密-phantomjs_server.js)

var wasSuccessful = phantom.injectJs('JSEncrypt.js');  //引用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;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19

在这里插入图片描述

5、运行刚写入的模版文件后插件连接测试

phantomjs phantomjs_server.js
  • 1

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

6、正常设置发包后选择引用插件选项

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值