挖洞不懂JS?没关系!一个BP小技巧让你快速在JS代码中找到关键信息

我们在漏洞挖掘的时候,一个很重要的方式是对网站的JavaScript代码做审计,比如

  • 找到了一堆path,但是不知道参数,也fuzz不出来,一个可能的未授权接口就只能放弃

  • 数据被加密了,但是不知道算法,需要到JS中去找对应算法实现

  • 分析业务流程,找对应的逻辑漏洞

  • 等等

我一般的操作方式是直接把JS代码下载到本地,然后进行反混淆,再使用VS Code去搜索,或者去分析流程,这个操作就比较麻烦,而且要求也更高。

我有一个挖友(有空时一起挖漏洞)不是开发出身,对JS更是一无所知,每次通过各种插件从源码中解析出来了一堆的path后,由于接口没有传参数,大部分都跑不通,全是异常。然后就会跑过来让我帮他去JS里面找参数。为了不再成为别人的“人肉参数搜索器”,于是仔细了分析了一下BP的一些功能,发现有一个小技巧可以让我们不需要下载源码,也不用反混淆的情况下,快速的找到我们想要的东西。

甚至也不需要懂什么JS,只要能够在文本里面获取关键信息就可以了。

操作步骤

0x00 流量捕获

首先我们要打开BP的proxy的被动流量捕获(Live passive crawl from Proxy),这样它会将所有的请求都根据domain、path等进行归类保存在Site map中,方便我们后续分析。

图片

0x01 收集JS

为了更好的收集网站的JS文件,要尽可能多的去点击网站上的各个功能点,让它加载尽可能多的JS文件。

为了避免缓存的影响,建议打开F12,禁用掉缓存。这样就保证每个JS文件都会从服务端下载,而不是使用浏览器缓存(如果使用浏览器缓存则不会被BP捕获)。

0x02 搜索JS

前置工作已经完成,下面我用一个栗子掩饰一下如何通过搜索JS文件找到对应path的参数。

下面这个路径是我通过JS源码找到的某站的一个接口路径,如果直接访问的话是会报错的:

图片

如果我们直接去fuzz参数,那基本上是属于大海捞针,几乎不太可能成功。那这时候就需要去JS源码里面找一下它的调用代码,看看它是怎么请求的,都有什么参数。 

打开Site map,选择上方的Filter:

图片

在Filter by search item中输入我们要搜索的path:

图片

然后左边的目录会按文本进行过滤,只剩下符合条件的请求,我们展开在左边被过滤的站点,找到对应的JS文件:

图片

在下面的搜索框搜索对应的path,找到它的调用位置:

图片

这时候即使不懂JS,也应该可以看出来它的参数是什么了吧,getJSON代表它大概率是个GET请求,然后后面第一个参数是请求路径,第二个肯定就是请求参数了,三个参数分别为:lineIdStr、sid、rand,rand看起来是时间戳,其它两个直接随便填上参数,可以看到接口已经可以正常访问,不再报参数异常了:

图片

这种方式来搜索请求参数信息对于大部分网站是可行的,除了一些混淆做得非常反人类的站点。这样我们再跑从JS中解析出来的未知路径的话,就可以针对性的对一些可疑接口进行进一步的测试,找到参数了,我们就可以通过fuzz参数值等方式,来验证未授权接口。

可能还有一些参数的结构和PATH不在一起,可能在上层的方法调用处,那么我们可以根据方法再搜索一次就行了。比如上面的例子,这个PATH的外层方法是lineLocalPromotion,那么我们根据这个名称再从第一步开始,搜索一次就行了。

最后

最后我想说,即使不懂代码,但是对于一些基础知识也是必须要了解的,比如HTTP协议这些,如果没有基础知识的铺垫,真的很难继续向上攀爬。
然后对于JS这块,可以在挖洞的同时,同步的去学习一点JS知识,然后在挖洞的过程中去实践,这样会提升得非常快。最后祝大家天天高危险,日日严重!


欢迎关注我的公众号“混入安全圈的程序猿”,更多原创文章第一时间推送 

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

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

相关文章

HTML五彩缤纷的爱心

写在前面 小编准备了一个五彩缤纷的爱心,送给各位小美女们~ 在桌面创建一个.txt文本文件,把代码复制进去,将后缀.txt改为.html,然后就可以双击运行啦! HTML简介 HTML(超文本标记语言)是一种…

【HCIP学习】BGP对等体组、聚合、路由反射器、联盟、团体属性

一、大规模BGP网络所遇到的问题 BGP对等体众多,配置繁琐,维护管理难度大 BGP路由表庞大,对设备性能提出挑战 IBGP全连接,应用和管理BGP难度增加,邻居数量过多 路由变化频繁,导致路由更新频繁 二、解决大…

小区物业管理系统

文章目录 小区物业管理系统一、项目演示二、项目介绍三、部分功能截图四、部分代码展示五、底部获取项目源码(9.9¥带走) 小区物业管理系统 一、项目演示 小区物业管理系统 二、项目介绍 基于springbootvue的前后端分离物业管理系统 系统角…

实验12:综合实验

1、实验目的及要求: 通过本次实验完成一个小型网络中配置设备。实现配置一个路由器、两个交换机和两台PC,以支持IPv4和IPv6连接;路由器和交换机必须安全管理,配置VLAN间路由、DHCP、以太网通道和端口安全。通过登录思科网络技术学…

Nginx详解:高性能Web服务器与反向代理的奥秘

Nginx,发音为“engine-x”,是一个开源、高性能的HTTP和反向代理服务器,也是邮件代理服务器。自2004年首次发布以来,Nginx凭借其轻量级、高效能和高并发处理能力,在互联网领域迅速崛起,成为许多大型网站和高…

某东抢购某台脚本——高成功率

某东抢购某台脚本——高成功率 小白操作-仅供学习参考 说明 这段代码主要关联了许多网络请求和对应的业务逻辑处理,用于处理与一个名为“茅台商城”的应用相关的网络操作。主要功能和关键组件的详细说明如下: 全局变量和配置: 使用AES加密…

用迭代加深解决加成序列问题

可以看到这个最坏的结果是100层搜索,但是其实1 2 4 8 16 32 64 128,到128的话也只要8,所以大概只需要10几层搜索就可以解决了,这个时候就可以用迭代加深的方法,深度一点点的加,如果大于概深度就舍去。有人说…

黏土滤镜教程分享:让你的照片瞬间变身黏土艺术

在数字时代的浪潮中,手机摄影和修图软件成为了我们日常生活中不可或缺的一部分。而近期,一款名为“黏土滤镜”的修图功能火爆全网,让无数摄影爱好者和创意达人为之疯狂。本文将为你详细介绍几款拥有黏土滤镜功能的软件,并附上详细…

ChatGPT付费创作系统软件开发

uni-app框架:使用Vue.js开发跨平台应用的前端框架,编写一套代码,可编译到Android、小程序等平台。 框架支持:springboot/Ssm/thinkphp/django/flask/express均支持 前端开发:vue.js 可选语言:pythonjavanode.jsphp均支持 运行软件…

中仕公考:公务员考试都有哪些类型?

1、国考:国考即国家公务员考试,是全国统一招考。每年10月份发布公告,11月份笔试,涉及的岗位比较多。 2、省考:省考是各省份公务员考试,主要是地方各级组织的统一考试。分为全国联考和非联考,一…

Kubernetes-容器的生命周期(init容器、健康检查探针、钩子)

目录 一、概述 二、init容器 1.概述 2.init容器作用 3.InitC容器示例 三、容器探针 1.概述 2.探针类型 3.readinessProbe-就绪检测示例 4.livenessProbe-存活检测示例 5.livenessProbe-tcp--检测端口模板 四、钩子 1.概述 2.yaml模板 3.示例 一、概述 1.当一个p…

PSO-SVM多变量回归预测|粒子群算法优化支持向量机|Matalb

目录 一、程序及算法内容介绍: 基本内容: 亮点与优势: 二、实际运行效果: 三、算法介绍: 四、完整程序下载: 一、程序及算法内容介绍: 基本内容: 本代码基于Matlab平台编译&am…

一周学会Django5 Python Web开发 - Django5注册模型到Admin系统

锋哥原创的Python Web开发 Django5视频教程: 2024版 Django5 Python web开发 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili2024版 Django5 Python web开发 视频教程(无废话版) 玩命更新中~共计54条视频,包括:2024版 Django5 Python we…

在全志H616核桃派开发板上进行PyQt5的代码编写和运行

核桃派本地 在上一节我们通过Qt Designer设计了ui窗口并转换成了Python代码,由于是Python编程,因此我们可以在核桃派开发板打开Python代码进行编程。 在核桃派上推荐使用Thonny来打开编写Python文件, 使用请参考:Thonny IDE。 打开上一节生…

揭秘抖音快速涨1000粉的方法:巨量千川投流,真实粉丝引爆你的账号;怎么快速涨有效粉

在抖音这个热门社交平台上,拥有大量粉丝不仅能增加曝光度,还能带来更多的关注和互动。因此,许多用户都在寻找能够快速增粉的方法。本文将揭秘抖音怎么快速涨1000粉的方法,并介绍了一种利用巨量千川投流和真实粉丝的方式&#xff0…

开放式耳机什么品牌最好?2024五款新晋爆款产品推荐!

​如今的耳机市场天下三分,有线入耳式耳机、蓝牙无线入耳式耳机以及开放式耳机,传统的有线入耳式耳机戴着不稳就算了,线很容易揉成一团,看着就头大;无线入耳式的耳机,同样面临着戴着不稳的问题,…

Transformers 加速的一些常用技巧

Transformers 是一个强大的架构,但模型因其采用的自注意力机制,虽然能够有效地处理序列数据并捕获长距离依赖关系,但同时也容易导致在训练过程中出现OOM(Out of Memory,内存不足)或者达到GPU的运行时限制。…

RS8521XF功能和参数介绍及PDF资料

RS8521XF功能和参数介绍及PDF资料-公司新闻-配芯易-深圳市亚泰盈科电子有限公司 品牌: RUNIC(润石) 封装: SOT-23-5 描述: 零漂移,1uV Vos,350KHz,1通道运放 放大器数: 单路 增益带宽积(GBP): 350kHz 输入偏置电流(Ib): 1pA 压摆率(SR): 0.17V/us RS8521XF 是一款高性能的运算…

OBS插件--图片或视频源随着声音动态缩放

音效动态调整 应用此插件的源可以根据音效声音的高低进行动态的缩放。在本例中,我们在当前的场景里面添加了一个小喇叭的图片源,在这个图片源上引用这款滤镜插件,然后将VLC视频源的音效用于此插件的音效。设置完成后,场景中的小喇…

基于GD32的简易数字示波器(4)- 软件_GD32的keil5环境和串口下载

这期记录的是项目实战,做一个简易的数字示波器。 教程来源于嘉立创,帖子主要做学习记录,方便以后查看。 本期主要介绍GD32的keil5环境和串口下载。详细教程可观看下方链接。 软件-第1讲-工程模板新建_哔哩哔哩_bilibili 2.1 开发环境搭建 …