本文发布于514天前,本文最后更新于513 天前,其中的信息可能已经过时,如有错误请留言或评论。
知识点
- JavaScript-作用域&调用堆栈
- JavaScript-断点调试&全局搜索
- JavaScript-Burp算法模块使用
之前学习过一段时间爬虫,对js逆向本身也有一定了解,所以学这节课比较轻松。
为什么要学这个?
- 针对JS开发应用
- 密码登录枚举爆破,参数提交漏洞检测
- 密码和参数需要加密后进行提交
- 泄漏URL有更多测试
前置知识
- 作用域:(本地&全局)
- 简单来说就是运行后相关的数据值
- 调用堆栈:(由下到上)
- 简单来说就是代码的执行逻辑顺序
- 常见分析调试:
- 代码全局搜索
- 根据数据包,获取一些关键字
- 然后直接在代码中全局搜索关键字,如登录提交的url路径等
- 根据数据包,获取一些关键字
- 文件流程断点
- 查询访问该页面调用的堆栈,google:F12->网络->选择数据包->启动器,寻找最有可能进行加密数据的调用进入分析
- 代码标签断点
- 右键检查元素后,选择标签右键,选择中断于属性修改和子树修改(一般就是触发事件)
- 这个方法有的网站可以,有的不可以
- XHR提交断点
- 选择xhr发送的数据包,在调试器中xhr断点处添加获取的关键路径
- 选择xhr发送的数据包,在调试器中xhr断点处添加获取的关键路径
- 代码全局搜索
演示案例
演示案例地址:
- 顺丰的用户名密码,地址:https://my.sto.cn/
- 上交大的交我算平台的登录密码,地址:https://account.hpc.sjtu.edu.cn/#/login
➢JS逆向-流程&全局搜索-登录算法
流程断点:审查元素抓网络请求包发起程序
全局搜索:通过抓包参数名进行代码全局搜索
➢JS逆向-标签&XHR断点-登录算法
标签断点:审查元素对应标签按钮加入断点
XHR断点:审查元素源代码加入XHR断点配置
➢JS逆向-结合BurpSuite-插件引用
- 下载phantomjs并添加其bin目录环境变量
- BurpSuite加载jsEncrypter插件
- 对逆向的加密算法提取JS文件及代码
- 也就是把人家加密用的js库的js代码直接保存下来,这里假设保存为JSEncrypt.js
- 这里逆向的的是上交大的交我算平台的登录密码,地址:https://account.hpc.sjtu.edu.cn/#/login
- 根据前面讲的方法,定位到js进行加密的地方如下:
- 根据前面讲的方法,定位到js进行加密的地方如下:
- 把代码写入到模版phantomjs_server中(引用JS和调用加密)
- 使用phantomjs运行刚写入的模版文件
phantomjs phantomjs_server.js
- 在burpsuite插件连接测试
- 正常设置发包后选择引用插件选项
- 发包即可发现数据都进行了加密
参考
学习内容均来自小迪安全系列课程: