当前位置: 首页 > 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.jsqmd.com/news/142652/

相关文章:

  • One Dark Pro主题完全指南:打造专业级VS Code编码环境
  • 2025年防水胶带品牌制造商推荐,防水胶带优质供应商与生产企业全解析 - 工业设备
  • 智能编码规则管理的四维优化体系:从碎片化到系统化的AI助手治理
  • 2025年12月电流变送器厂家推荐:年度综合实力品牌排行榜单及选购指南分析 - 十大品牌推荐
  • 2025年质量好的吨包机/潍坊吨包机厂家最新TOP排行榜 - 品牌宣传支持者
  • ESP异常解码器终极指南:快速定位和修复ESP32崩溃问题
  • 2025最新!9个AI论文软件测评:研究生开题报告必备推荐
  • 5分钟Docker自建开源协作表格!蜘蛛表格部署教程(数据私有化+免费可用)
  • 2025年12月上门除甲醛公司推荐:五强对比评测与选择指南 - 十大品牌推荐
  • Open-AutoGLM部署后无法调用API?资深工程师教你快速定位并解决8类常见故障
  • Open-AutoGLM订咖啡真的可行吗?:深度剖析其技术架构与应用前景
  • 2025年12月上门除甲醛公司推荐排行榜单:专业评测分析与实用选择指南 - 十大品牌推荐
  • 2025年12月公交站台厂家推荐:综合实力排行榜单及选购指南分析 - 十大品牌推荐
  • 测的准+服务稳!3家硬核偏光应力仪生产厂家盘点,医疗器械企业直接抄作业 - 品牌推荐大师
  • Python Fitparse完整指南:轻松解析Garmin运动数据文件
  • 如何快速搭建Docker抢票环境:完整部署指南
  • Chrome扩展终极指南:一键批量下载网页资源并保持完整目录结构
  • Qwen-Image-Edit-Rapid-AIO终极指南:4步闪电出图,企业视觉创作效率革命
  • No!! MeiryoUI:Windows系统字体定制完全指南
  • 【权威榜单】2025年BI PaaS平台魔力象限揭晓:衡石科技首次登顶,五大厂商格局重塑
  • 【Java】JPA
  • 数据滤波神器卡尔曼滤波:如何在噪声中找到真实信号?[特殊字符]
  • PaddlePaddle + GPU算力组合推荐:中文自然语言处理最佳实践
  • Windows 32位系统音视频处理终极方案:FFmpeg-Builds-Win32完全指南
  • 深度解析edge-tts语音合成:从403错误到流畅使用的完整实战指南
  • 合规文化建设:从意识到行为的转变
  • 14、图数据结构的C实现与遍历算法
  • WinDbg Preview下载集成Visual Studio?全面讲解方法
  • SDXL-ControlNet Canny模型:从零开始的AI图像控制终极指南
  • Tduck问卷调查系统完整使用指南:从零开始构建专业表单