当前位置: 首页 > news >正文

JS逆向-网络请求筛选断点调试调用堆栈作用域控制台分析BP插件发包安全结合

知识点:

1、断点调试&调用堆栈&作用域&控制台分析

2、BP插件发包&安全结合

前置知识

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

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

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

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

3、常见分析调试:

这三种方法针对不同对象(搜索一般用来对付简单的,复杂点的就得用断点了)

-代码全局搜索

-文件流程断点(执行的代码经过哪些文件)

-代码标签断点

-XHR提交断点

4、为什么要学这个?

-针对JS开发应用

-密码登录枚举爆破

-参数提交漏洞检测(sql注入等)

-泄漏URL有更多测试

一、登陆算法-全局搜索&文件流程断点调试&XHR断点调试

测试地址:[https://my.sto.cn/](https://my.sto.cn/)

数据加密对安全测试的影响:

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

1、全局搜索:通过抓取参数名或者路径名来进行代码全局搜索

提交的地址如下图所示,所以我们全局搜素Vip/LoginResult(ctrl+shift+f)

那我们再回去看谁声明了encrypt

2、文件流程断点:审查网络请求包里的发起程序

点击发起程序中的login文件跳转

重新点击登陆后,页面显示已在程序调试中暂停,点击logindata显示加密后的数据

说明,数据在222之前就已经被加密,那我们需要再往前审查

调用堆栈点到(匿名)时,没有加密,下一个login时就加密了,说明加密过程是在154-222之间完成的

选中以下encrypt.encrypt话可以查看加密来源文件

3、代码标签断点:登录按钮检查

右键登录检查后,中断处选择子树修改和属性修改

不过此处申通登陆网址不是用此方法

换一个测试地址:https://account.hpc.sjtu.edu.cn/#/login

重复上述操作,点击登录

可以发现自动断点,也就是说,断点后的代码负责登录事件

4、XHR(XMLHttpRequest)提交断点

复制固定路径地址

添加后勾选

点击登录

发现作用域和调用堆栈和之前一样,后续步骤和之前一样了

二、登陆算法演示案例-文件流程断点&XHR断点

测试地址:[https://account.hpc.sjtu.edu.cn/](https://account.hpc.sjtu.edu.cn/)

文件流程断点:

![](https://cdn.nlark.com/yuque/0/2025/png/55522994/1765860182415-16ced134-3553-4d21-966e-7e46d8feadfd.png)

可以发现启动器也就是发起程序有很多,其中有一个value是值的意思,我们可以先点开看一下

有login字样,我们在此处断点并再点击登录

可以看到作用域有加密数据了

可以把放入控制台输出一下

发现可以运行,成功加密123

但最终目的不是在控制台运行,而是把整个加密代码运行出来

点击JSEncrypt

复制整段代码到在线编辑器里运行

密钥已知

运行结果如下

XHR断点

![](https://cdn.nlark.com/yuque/0/2025/png/55522994/1765862877372-494bc509-5da0-47c2-a96c-82edaa0106d6.png)

添加并勾选该XHR断点

重新登陆后,调用堆栈处找到value

后续操作和上文一致

三、演示案例-结合BurpSuite插件使用

测试域名还是[https://account.hpc.sjtu.edu.cn/](https://account.hpc.sjtu.edu.cn/)

:::color1
前提条件:

下载phantomjs并设置环境变量

BP加载jsEncrypter插件

:::

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

![](https://cdn.nlark.com/yuque/0/2025/png/55522994/1765868974346-70ee6f2b-ccef-451c-86b1-70d8c884cb64.png)

将加密算法文件取出

2、将修改的代码写入phantomjs_server.js文件中

```java 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;
}


写入该文件![](https://cdn.nlark.com/yuque/0/2025/png/55522994/1765869262523-01b4525b-c0d3-4759-b094-767173d61fe5.png)<h3 id="j5yuF">3、运行刚写入模板文件后插件连接测试</h3>
```java
phantomjs phantomjs_server.js

成功加密

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

![](https://cdn.nlark.com/yuque/0/2025/png/55522994/1765870141755-10059455-e30b-4bb9-909d-dfcf45ba3701.png)

成功发包,且都是加密后的算法

http://www.gsyq.cn/news/156822.html

相关文章:

  • 2025年12月电流变送器厂家推荐:年度综合实力品牌排行榜单及选购指南分析 - 十大品牌推荐
  • ESP异常解码器终极指南:快速定位和修复ESP32崩溃问题
  • 2025最新!9个AI论文软件测评:研究生开题报告必备推荐
  • 2025年12月上门除甲醛公司推荐:五强对比评测与选择指南 - 十大品牌推荐
  • 2025年12月上门除甲醛公司推荐排行榜单:专业评测分析与实用选择指南 - 十大品牌推荐
  • No!! MeiryoUI:Windows系统字体定制完全指南
  • SDXL-ControlNet Canny模型:从零开始的AI图像控制终极指南
  • Windows 11 个性化改造利器:ExplorerPatcher 深度使用手册
  • WinDbg Preview下载集成Visual Studio?全面讲解方法
  • 【边缘计算新突破】:Open-AutoGLM如何应对移动端资源瓶颈?
  • MoveIt2 机器人运动规划框架终极实战指南
  • 15、图算法:最小生成树与节点着色
  • Rete.js完整指南:轻松构建可视化编程界面的终极方案
  • 终极指南:5步轻松获取游戏DLC的CreamApi完整教程
  • PDF补丁丁终极跨平台指南:3分钟搞定Windows/Linux双系统PDF处理
  • Open-AutoGLM模型高效部署方案(99%工程师忽略的关键细节)
  • Marker PDF工具终极配置指南:3步解决常见安装问题
  • videocr视频文字提取工具:从视频中高效提取硬编码字幕的完整指南
  • 从零开始打造个性化桌面:香蕉光标主题完全定制指南
  • bsdiff/bspatch:二进制补丁技术的终极解决方案,让软件更新效率飙升!
  • 手机控制LED显示屏常见问题及解决方案汇总
  • 前端组件库架构设计的模块化革命:从单体巨石到微前端适配
  • 2025江西/浙江堂食快餐加盟品牌top5推荐!服务深度覆盖南昌、杭州等地,小本创业项目及连锁店深度解析,零经验绿色食材小本创业选择指南 - 全局中转站
  • 企业级AI落地首选:PaddlePaddle镜像全面支持视觉与NLP场景
  • Android逆向工程终极指南:dex2jar完整使用教程
  • 停车场管理|基于java+ vue停车场管理系统(源码+数据库+文档)
  • 终极方案:Windows电脑快速访问酷安社区的完整教程
  • 考试管理系统|基于java+ vue考试管理系统(源码+数据库+文档)
  • 独家揭秘:资深工程师如何在Windows 10/11完美运行Open-AutoGLM(含性能调优技巧)
  • Open-AutoGLM + Windows = 失败?别急,可能是这4个关键配置没调对