DAY63WEB 攻防-JS 应用&算法逆向&三重断点调试&调用堆栈&BP 插件发包&安全结合

前置知识

浏览器调试

1、作用域:(本地&全局)
简单来说就是运行后相关的数据值

2、调用堆栈:(由下到上)
简单来说就是代码的执行逻辑顺序

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

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

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

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

3、常见分析调试:

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

-代码全局搜索

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

-代码标签断点

-XHR提交断点

4、为什么要学这个?

-针对JS开发应用

-密码登录枚举爆破

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

-泄漏URL有更多测试

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

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

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

失败的原因:js代码是运行在内存中的,首先内存肯定有这个函数的定义,但是调用失败,就说明没有变量,需要先创建变量才是使用函数。而且提示上也说 encrypt 未被创建,可以通过浏览器搜索找到这个变量声明的位置,找到创建的代码。

代码标签断点:审查元素对应标签按钮加入断点

备注:有的网站能用有的不能用,区别就在于HTML写的表单不一样导致),不推荐

通过浏览器的元素选择功能找到登录的标签

二、演示案例-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;

}

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

phantomjs phantomjs_server.js

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

请求调用堆栈的部分就是登录验证请求发送数据包前后的函数调用栈(文件)

案例

文件断点

相关推荐
m0_4912670015 分钟前
Docker部署MySQL 多库自动备份(结构+数据完整,适配CentOS)
mysql·安全
乱蜂朝王34 分钟前
使用 C# 和 ONNX Runtime 部署 PaDiM 异常检测模型
开发语言·c#
波诺波38 分钟前
p1项目system_model.py代码
开发语言·python
危笑ioi38 分钟前
helm部署skywalking链路追踪 java
java·开发语言·skywalking
静心观复1 小时前
Python 虚拟环境与 pipx 详解
开发语言·python
卷心菜狗1 小时前
Re.从零开始使用Python构建本地大模型网页智慧聊天机器人
开发语言·python·机器人
书到用时方恨少!1 小时前
Python NumPy 使用指南:科学计算的基石
开发语言·python·numpy
2501_933329551 小时前
技术深度拆解:Infoseek舆情系统的全链路架构与核心实现
开发语言·人工智能·分布式·架构
Z_Wonderful1 小时前
在 Next.js 中,使用 [id] 或 public 作为文件夹或文件名是两种完全不同的概念,分别对应 动态路由 和 静态资源托管
javascript·网络·chrome
Chan162 小时前
MCP 开发实战:Git 信息查询 MCP 服务开发
java·开发语言·spring boot·git·spring·java-ee·intellij-idea