WEB攻防-JS系列
1、作用域:(本地&全局)
简单来说就是运行后相关的数据值
2、调用堆栈:(由下到上)
简单来说就是代码的执行逻辑顺序
3、常见分析调试:
-代码全局搜索
-文件流程断点
-代码标签断点
-XHR提交断点
edge
firefox
4、为什么要学这个?
-针对JS开发应用
-密码登录枚举爆破
-参数提交漏洞检测
-泄漏URL有更多测试
js加密,发到服务器,然后进行相关的解密,在处理数据。
服务器收到的不是加密内容,直接就不执行了。
所以要找到对应的JS加密
环境准备
下载phantomjs并设置环境变量
https://phantomjs.org/download.html
知识点
JavaScript-作用域&调用堆栈
JavaScript-断点调试&全局搜索
JavaScript-Burp算法模块使用
项目案例
JS逆向-登录算法
全局搜索法+三断法,即流程断点、标签断点、XHR断点
全局搜索:通过抓包参数名进行代码全局搜索
流程断点:审查元素抓网络请求包发起程序
标签断点:审查元素对应标签按钮加入断点
XHR断点:审查元素源代码加入XHR断点配置
全局搜索法
看到路径,CTRL+SHIFT+F,全局搜索/Vip/LoginResult
找到相关的代码,只有中间一个剩下的都是注释文件。向上翻,能够看到加密方式
搜索encrypt,看到了js的加密库。
看到声明格式,var encrypt =new JSEncrypt()。按照这个格式尝试生成,生成加密的数据。
如果这个地方换成paylaod的进行生成,那么服务器也可以接收到payload
流程断点法
当点击登陆时,发起程序下的请求调用堆栈,从下向上为依次加载js的顺序,可以看到js的参与顺序。
CTRL+鼠标左键是可以跟进去的
在定位到的地方打一个断点,重新登录
移动到logindata上,发现数据已经被加密。
证明是从(匿名)-》Login中被加密的
翻到上面代码其实就明白了…当我们移到上边会看到引用的JS文件…
再发起程序较少时使用~~~
标签断点法
通过标签进行断点。不过这个站点不支持这个做法,换一个。
点击登录,进行调式。不过会发现太多的请求了。这边跳的地方不对。
手工看代码就完了
XHR断点法
选取特有地址,/Vip/LoginResult,然后XHR提取断点
断点执行过程,拉出来js文件
找一个在线执行js的文件进行测试
o的参数在js断点过程中有看到
https://www.wetools.com/js-run
使用xhr断点调试,把as/user/login作为xhr断点规则
点击登录后,开始从堆栈分析
一个个开始寻找,处于加密过程中
根据这个规则,去进行加密,那么服务器一定会去执行
JS逆向-结合BurpSuite-插件引用
burpsuite本身有base64等操作,结合插件测
1、下载phantomjs并设置环境变量
https://phantomjs.org/download.html
并追加到环境变量
2、BurpSuite加载jsEncrypter插件
https://github.com/c0ny1/jsEncrypter/releases
3、对逆向的加密算法提取JS文件及代码
添加插件进入bp,并对下边的文件进行配置
JSEncrypt.js
var r = new JSEncrypt,
o = "xxxxxxxxx";
r.setPublicKey(o);
var s = r.encrypt(password)
return s
4、讲代码写入到模版中(引用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;
}
修改参数
5、运行刚写入的模版文件后插件连接测试
phantomjs xxxxx.js
整个文件的架构
6、正常设置发包后选择引用插件选项
burp抓一下那个包,然后发到爆破模块下。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fTKY9Znl-1689001602777)(C:\Users\86184\AppData\Roaming\Typora\typora-user-images\image-20230710192850704.png)]
选个大字典爆破试一下,使用插件
效果