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

目录

前置知识

JS调试分析

JS分析调试结合Burp


JS分析调试知识点:

1、JavaScript-作用域&调用堆栈
2、JavaScript-断点调试&全局搜索
3、JavaScript-Burp算法模块使用

前置知识

JS加密数据走向

浏览器调试

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

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

常见分析调试方式

  • 代码全局搜索
  • 文件流程断点
  • 代码标签断点
  • XHR提交断点

学习JS分析调试作用

  • 针对JS开发应用
  • 密码登录枚举爆破  
  • 参数提交漏洞检测
  • 泄漏URL有更多测试

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

CTRL+SHIFT+I:进入浏览器开发者模式。

JS调试分析

流程断点:审查元素抓网络请求包发起程序
全局搜索:通过抓包参数名进行代码全局搜索
标签断点:审查元素对应标签按钮加入断点
XHR断点:审查元素源代码加入XHR断点配置

全局搜索:通过抓包参数名或者路径名进行代码全局搜索

测试域名:https://my.sto.cn/

如果网站数据是通过js传输的,那么就需要有请求的路径包含在js代码里。通过寻找登录的数据包,找到登录时请求的url地址,在js代码中全局搜索,加密的代码就在上面的代码里。

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

通过调用函数方法验证

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

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

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

然后再通过堆栈调用分析。

案例二:https://account.hpc.sjtu.edu.cn/#/login

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

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

案例二:https://account.hpc.sjtu.edu.cn/#/login

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

XHR(xmlhttprequet)断点:审查元素源代码加入XHR断点配置

 案例二:https://account.hpc.sjtu.edu.cn/#/login

JS分析调试结合Burp

1、下载phantomjs并设置环境变量
https://phantomjs.org/download.html

打开控制面板-系统-高级设置

2、BurpSuite加载jsEncrypter插件
https://github.com/c0ny1/jsEncrypter/releases

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

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、正常设置发包后选择引用插件选项

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/457920.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

论文阅读——RingMo

RingMo: A Remote Sensing Foundation Model With Masked Image Modeling 与自然场景相比,RS图像存在以下困难。 1)分辨率和方位范围大:受遥感传感器的影响,图像具有多种空间分辨率。此外,与自然图像的实例通常由于重…

《1w实盘and大盘基金预测 day3》

上贴指数预测拉满,上证最低位置和最高位置预测的八九不离十,个人预测最高3062实际3060,最低3017实际3020 昨天的预测 3017-3031-3062 低开反抽,回落下杀 明天看是否能阳包阴,得看蓝筹、证券发力。(AI板块…

对OceanBase进行 sysbench 压测前,如何用 obdiag巡检

有一些用户想对 OceanBase 进行 sysbench 压测,并向我询问是否需要对数据库的各种参数进行调整。我想起有一个工具 obdiag ,具备对集群进行巡检的功能。因此,我正好借此机会试用一下这个工具。 obdiag 功能的比较丰富,详细情况可参…

【机器学习300问】37、什么是迁移学习?

一、什么是迁移学习? (1)它的出现是为了解决什么问题? 迁移学习是为了解决深度学习中由于数据不足导致的学习效果受限以及跨领域知识的有效利用等问题而发展起来的一种重要技术手段。 ① 缺少训练数据 在许多实际应用中&#xf…

手动创建线程池各个参数的意义?

今天我们学习线程池各个参数的含义,并重点掌握线程池中线程是在什么时机被创建和销毁的。 线程池的参数 首先,我们来看下线程池中各个参数的含义,如表所示线程池主要有 6 个参数,其中第 3 个参数由 keepAliveTime 时间单位组成。…

DM数据库安装(Linux)

Linux安装 操作系统CPU数据库CentOS7x86_64 架构dm8_20230418_x86_rh6_64 先把压缩包扔过去 新建 dmdba 用户 创建用户所在的组,命令如下: groupadd dinstall 创建用户,命令如下: useradd -g dinstall -m -d /home/dmdba -s /…

MQTT 的 QoS 等级:QoS 0、QoS 1、QoS 2

MQTT(Message Queuing Telemetry Transport)是一种轻量级的通信协议,在物联网和消息传递系统中广泛应用。MQTT 提供了三个不同的 QoS(Quality of Service)等级,用于确保消息的可靠性和传输效率。本文将详细…

java数据结构与算法刷题-----LeetCode47. 全排列 II

java数据结构与算法刷题目录(剑指Offer、LeetCode、ACM)-----主目录-----持续更新(进不去说明我没写完):https://blog.csdn.net/grd_java/article/details/123063846 文章目录 1. 暴力回溯2. 分区法回溯 此题为46题的衍生题,在46题…

Android14之报错:error:add its name to the whitelist(一百九十四)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 优质专栏:多媒…

Vscode 修改C++版本

1. 首先要检查GCC版本,有的gcc版本过低会导致C版本升级不成功 可以用cmd,用gcc --version命令查看gcc版本 我这里就是gcc版本较低,不支持c17 需要先升级gcc版本 gcc与c对应的版本,大家可以在这位大佬的博客中看,写…

json-server库的使用,实现数据模拟

项目目录 安装 npm i json-server -g 启动单个json服务,在cookbook目录下执行命令: json-server ./mock/a.json -p 9000 待实现

本地调试 Github Actions:维护纯净代码,减少调测记录 | 开源日报 No.200

nektos/act Stars: 47.6k License: MIT act 是一个可以在本地运行 GitHub Actions 的工具。 快速反馈:无需每次都提交/推送更改到 .github/workflows/ 文件(或嵌入式 GitHub actions),使用 act 可以在本地运行 actions&#xff…

【华为 ICT HCIA eNSP 习题汇总】——题目集16

1、下面哪一个最适合使用室内分布方式部署 WLAN? A、运动场 B、办公室 C、高校单排宿舍 D、广场 考点:无线局域网 解析:(C) 室内分布方式部署 WLAN 一般适用于需要大面积、高密度、高质量无线覆盖的场所,从…

<JavaEE> 数据链路层 -- 以太网协议、MTU限制、ARP协议

目录 以太网协议 什么是以太网? 以太网的帧格式 什么是MAC地址? MAC地址和IP地址的对比? MTU(最大传输单元)限制 什么是MTU限制? MTU对IP协议有什么影响? MTU对UDP协议有什么影响&…

Css提高——flex布局及其相关属性

目录: 1、传统布局与flex布局的区别 2、flex的布局原理 3、flex常见的父项属性 3.1、flex-direction :设置主轴的方向 3.2、justify-content 设置主轴上的子元素排列方式 3.3、flex-wrap 设置子元素是否换行 3.4、align-items 设置侧轴上的子元素排…

电阻器的等效电路与高频无感电阻的性能

电阻器的结构比较简单,但在高频情况下,不能简单地把电阻器看成只是一个电阻分量的理想元件。电阳器实际上是由许多电阻、电感和电容分量组成的复杂阻抗系统,电阻只是其中的一个主要成分。因此必须研究电阻器的直流等效电路、高频等效电路和集…

面试题系列一之-css画三角形(原理解析)

用html写一个三角形的图标算是一个比较简单的,但是工作中用的还是比较多的&#xff0c;面试也可能会问&#xff0c;但了解背后的原理才能熟练使用 我们首先写一个div,设置边框 <body><div class"border"></div> </body> <style> .bo…

HNU计算机系统·汇编进阶

知识回顾&#xff1a; 寻址&#xff1a; 其中&#xff0c;比例因子S&#xff0c;只能是1&#xff0c;2&#xff0c;4&#xff0c;8中的数&#xff0c;这是因为在LEA的独立电路中使用移位寄存器 上节课的补充&#xff1a; mov部分: mov value , %eax mov $value , %eax 第一条…

Python数据分析-5

1.时间序列 2.pandas重采样 重采样&#xff1a;指的是将时间序列从一个频率转化为另一个频率进行处理的过程&#xff0c;将高频率数据转化为低频率数据为降采样&#xff0c;低频率转 化为高频率为升采样。 统计出911数据中不同月份电话次数的变化情况&#xff1a…

Mysql---库表操作

文章目录 前言一、pandas是什么&#xff1f;二、使用步骤 1.引入库2.读入数据总结 一.Mysql数据库简介 MySQL是一种关系型数据库管理系统&#xff0c;是最流行的开源数据库之一。它是由瑞典MySQL AB公司开发的&#xff0c;后来被Sun Microsystems收购&#xff0c;之后又被Oracl…