【$15000】 通过监控调试模式实现RCE

你有没有遇到过一个你直觉上知道存在漏洞的端点,但你却无法完全理解后端发生了什么或如何利用它?在这篇文章中,我将引导你了解一种技术,它将我的黑盒测试转变为半白盒测试。这种方法导致了多个漏洞的发现,并最终实现了对系统的远程代码执行。

发现端点

在阅读一个JavaScript文件时,我发现了一个名为ExtraServices的端点,于是我打开Burp并在Burp Repeater中请求该端点。然而,该端点返回了404状态码,但与主机始终返回的404略有不同,因此我想这可能是一个不同的主机,于是我开始使用ffuf对该端点进行模糊测试。

图片

使用下面的命令

ffuf -c -w <(cat customwordlist.txt) -u https://company.com/Extraserivce/FUZZ

<() 语法被称为进程替代,它充当一个输入源,程序可以从标准输入读取。我通常在对目标进行模糊测试时使用它,因为它允许我动态调整或修改我的字典列表。

例如,如果你发现一个端点像 api/users/:user:id,并且你想提取所有用户 ID,而不是创建一个新文件来保存所有用户 ID 然后再进行模糊测试,你可以简单地使用

ffuf -c -w <(seq 1 1337) -u https://company.com/Extraserivce/FUZZapi/users/FUZZ

回到Extraserivce[1]端点,这次对该端点的模糊测试没有得到任何结果,所以我决定暂时放弃。几小时后,我发现之前正常工作的某些端点几乎全部返回了自定义404响应,因此我知道开发者实现了一种功能,使某些端点返回404响应。我知道这一点是因为404响应与上面截图中的不同。所以我抓取了一个之前正常工作的端点,并在路径前面添加了一个反斜杠,例如 /\purl/test,这时返回了200 OK。因此,我抓取了Extraserivce[2]端点,在其前面也添加了反斜杠,然后重新开始模糊测试

ffuf -c -w <(cat customwordlist.txt) -u https://company.com/\Extraserivce/FUZZ

不久之后,我收到了一个非常有趣的端点,名称为 callAny

图片

根据端点名称和响应,我认为这个端点接受一个参数,然后在 call_user_func 或 eval 等类似函数中执行它,因此我开始对该端点进行模糊测试,使用了几种GET和POST请求参数,例如:

FUZZ=phpinfo FUZZ=phpinfo() FUZZ=phpinfo();

等等。我想,也许它直接从POST请求中获取,而不是通过请求参数,使用类似于 php://input 的包装器。

因此,我开始尝试在请求体中注入内容,比如 phpinfo<?php phpinfo(); ?>ls 等。

图片

什么都没有奏效,我还尝试了一些像SSRF/LFI的方式,但我无法弄清楚后端发生了什么,所以我放弃了。

监控调试模式以了解后端发生了什么

几天后,当我浏览网站并测试其他功能时,收到了下面的错误。这表明开发者在生产环境中开启了调试模式,因为当调试模式开启时,导航到任何返回错误的端点时,它会显示错误详情,因此我可以知道出了什么问题。我迅速再次导航到Extraserivce/[3]callany端点,但为时已晚,开发者在几秒钟后关闭了调试模式。

图片

一个想法在我脑海中闪现,为什么不监控这个端点,如果开发者再次开启调试模式,我就抓取响应呢?于是我决定监控这个端点,检查响应大小是否有变化,如果有变化,就将响应详情发送到我的 Discord 频道。

不久后,我在 Discord 收到了以下三条错误信息:​​​​​​​

Warning: Undefined array key “Model” in redacted on lineWarning: Undefined array key “Method” in redacted on lineWarning: include_once(Models/): Failed to open stream: No such file or directory in redacted on line

你可能现在知道发生了什么,开发者正在接受一个名为 Model 的参数,以包含一个特定的模型,然后使用 method 参数来触发包含模型的特定功能。你发现了这个漏洞吗?这是一个 LFI(本地文件包含)漏洞!你可能会想,好吧,你可以包含任何文件,但仍然会得到一个错误,因为你需要一个有效的文件和一个有效的方法,否则服务器将返回 500 状态代码。

图片

图片

除了代码会在包含文件之后触发方法这一事实之外,这在此时并不重要,因为我们已经实现了 LFI。

将 LFI 升级为远程代码执行(RCE)

我喜欢且最快的方法之一是通过 PHP 过滤器链将 LFI 升级为 RCE,更多信息可以参考 Synacktiv 的这篇文章[4]。但由于我们无法控制文件的第一部分,因此我们不能真正使用 PHP 包装器,所以我们需要更加努力。使用经典的方法,如日志注入、PHP 会话注入、读取 proc/self/environ 等,并没有返回任何结果,因此我决定对 web 目录进行模糊测试,寻找可能指示可以写入主机的线索。

我尝试了以下内容:

Model=../FUZZ

图片

我收到了三个结果。阅读 .gitignore 文件时,发现了一些有趣的文件。

图片

特别是 log 和 LOG_Path 目录,因为这些地方可能会记录用户可以控制的内容,比如请求头、参数和路径等。

于是我决定对这两个目录进行模糊测试。然而,幸运的是,在模糊测试时,我忘记包含 log 目录,所以我实际上执行的命令是:

Model=../FUZZ.txt

当我查看响应时,我发现 test.txt 的内容存储了 X-ORIGINAL_URL 端点的整个 HTTP 请求。

图片

于是我请求了 test.txt 文件中的路径,并在请求头中添加了一个 webshell:

T: <?php system($_GET['cmd-old']); ?>

然后执行了 ls 命令作为概念验证。

图片

 无 偿 获 取 网 安 资 料:

 申明:本账号所分享内容仅用于网络安全技术讨论,切勿用于违法途径,所有渗透都需获取授权,违者后果自行承担,与本号及作者无关

 

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

npm镜像的常用操作

查看当前配置的 npm 镜像 npm config get registry切换官方镜像 npm config set registry https://registry.npmjs.org/切换淘宝镜像(推荐) npm config set registry https://registry.npmmirror.com/切换腾讯云镜像 npm config set registry http://mirrors.cloud.tencent…

Fake Location解除屏蔽分析

前言:对于Fake Location的appconfigs.xml文件屏蔽分析 <?xml version1.0 encodingutf-8 standaloneyes ?> <map><string name"config">{&quot;disabledApps&quot;:[&quot;com.srit.swork.views&quot;,&quot;com.sqjz&q…

3D系统开发工具HOOPS SDK如何实现PLM应用的创新与优化?

无论是支持汽车、航空航天、医疗设备还是建筑&#xff0c;产品生命周期管理(PLM)解决方案实际上都是将制造生产系统结合在一起的粘合剂&#xff0c;从头到尾提供数字线程并为最终用户优化流程。 Tech Soft 3D在行业内近30年&#xff0c;我们对领先的应用程序所基于的组件技术&…

数据结构和算法之树形结构B+树(7)

前一章节我们介绍了B树&#xff0c;了解了B树是适用于大规模数据存储和磁盘访问‌的树结构&#xff0c;而今天要讲的B是B树的一种改进&#xff0c;是B树的一种优化和改进&#xff0c;被大多数据库系统采纳作为索引结构使用。 一、基本概念 B树是B树的改进&#xff0c;因…

用 Python 爬取淘宝商品价格信息时需要注意什么?

用 Python 爬取淘宝商品价格信息时&#xff0c;需要注意以下方面&#xff1a; 一、法律和道德规范&#xff1a; 遵守法律法规&#xff1a;网络爬虫的行为应在法律允许的范围内进行。未经淘宝平台授权&#xff0c;大规模地爬取其商品价格信息并用于商业盈利等不当用途是违法的…

基于Python的自然语言处理系列(50):Soft Prompt 实现

在本篇文章中,我们将实现一个简单的 Soft Prompt 技术,该技术允许我们仅微调新增的嵌入权重,而保持预训练模型不变。Soft Prompt 的主要优势在于它的参数高效性,使得模型在特定任务上快速适应,而无需重新训练模型的所有权重。 1. Soft Prompt 概述 Soft Prompt 技术来源于…

stack和queue --->容器适配器

不支持迭代器&#xff0c;迭代器无法满足他们的性质 边出边判断 实现 #define _CRT_SECURE_NO_WARNINGS 1 #include<iostream> #include<stack> #include<queue> using namespace std; int main() {stack<int> st;st.push(1);st.push(2);st.push(3);…

UE5 材质篇 1 如何偏移顶点

顶点偏移 start content里的plane长这样 我们进行一点顶点偏移就能长这样 XY加起来乘个缩放系数扔给sin结果乘个缩放系数即可

MySQL45讲 第十六讲 “order by”是怎么工作的?

文章目录 MySQL45讲 第十六讲 “order by”是怎么工作的&#xff1f;一、引言二、全字段排序&#xff08;一&#xff09;索引创建与执行情况分析&#xff08;二&#xff09;执行流程&#xff08;三&#xff09;查看是否使用临时文件 三、rowid 排序&#xff08;一&#xff09;参…

Ansys HFSS:外壳的屏蔽效果演示

欢迎回来&#xff01;随着电子系统变得越来越复杂和集成&#xff0c;确保适当的屏蔽以减轻电磁干扰 &#xff08;EMI&#xff09; 变得越来越重要。 继续讨论屏蔽效果&#xff0c;我们现在将重点转移到另一个强大的工具上&#xff1a;Ansys HFSS&#xff08;高频结构仿真器&am…

无人机避障——(局部规划方法)DWA(动态窗口法)

传统的DWA算法更加倾向于车辆等差速无人车&#xff0c;旋翼无人机是全速的&#xff0c;全向的。 全局路径是通过A*算法生成的 局部路径规划效果&#xff1a; DWA算法效果&#xff1a; 过程图&#xff1a; 完整过程&#xff1a; PID算法效果&#xff1a; 过程图&#xff1a…

数据库->视图

目录 一、视图 1.什么是视图 ​编辑 2.创建视图 1.语法 3.使用视图 4.视图的功能 1.屏蔽相关字段 2.对外提供统一访问规范 3.视图和真实表进行表连接查询 5.修改数据 6.注意事项 7.删除视图 1.语法 8.视图的优点 1. 简单性 2. 安全性 3. 逻辑数据独⽴性 4. 重…

el-scrollbar 动态更新内容 鼠标滚轮无效

有以下功能逻辑&#xff0c;实现了一个时间轴组件&#xff0c;点击、-号后像地图那样放大组件以显示不同的UI。 默认显示年月&#xff1a; 当点击一下加号时切换为年&#xff1a; 当点击减号时切换为日&#xff1a; 即加号、减号点击就是在年月日显示进行切换。给Scrollvie…

动态ip如何自动更换ip

在探讨如何自动更换动态IP地址时&#xff0c;我们首先需要理解动态IP的基本概念。IP地址&#xff0c;即互联网协议地址&#xff0c;分配给每台连接到互联网的设备的唯一标识符。与传统静态IP地址不同&#xff0c;动态IP地址是由网络服务提供商&#xff08;ISP&#xff09;动态分…

关于金属氢化物(储氢)PCT曲线拟合、ZBS有效导热系数模型、JMAK类型吸放氢动力学方程的笔记

参考文献&#xff1a;Experimental and numerical study of metal hydride beds with Ti0.92Zr0.10Cr1.0Mn0.6Fe0.4 alloy for hydrogen compressionhttps://www.sciencedirect.com/science/article/pii/S1385894723043851?via%3Dihub#s0010 一、PCT曲线拟合 根据以下文献内容…

力扣最热一百题——验证二叉搜索树

目录 题目链接&#xff1a;98. 验证二叉搜索树 - 力扣&#xff08;LeetCode&#xff09; 题目描述 示例 提示&#xff1a; 二叉搜索树的要求 解法一&#xff1a;采用中序遍历 中序遍历的定义 为什么二叉搜索树的中序遍历是严格递增的 二叉搜索树&#xff08;BST&#x…

如何无缝更换WordPress主题:关键步骤详解

更换WordPress主题对于希望刷新网站外观或改善用户体验的站长来说&#xff0c;是一项常见但不容忽视的任务。无论是为了提升性能还是实现新的设计风格&#xff0c;在更换主题时&#xff0c;确保不遗漏任何重要细节至关重要。本文将详细介绍更换WordPress主题的关键步骤&#xf…

科技改变阅读习惯:最新研究揭示电子阅读器的普及趋势

据QYResearch调研团队最新报告“全球电子阅读器市场报告2023-2029”显示&#xff0c;预计2029年全球电子阅读器市场规模将达到6.9亿美元&#xff0c;未来几年年复合增长率CAGR为0.4%。 如上图表/数据&#xff0c;摘自QYResearch最新报告“全球电子阅读器市场研究报告2023-2029.…

ServletContext 对象介绍

文章目录 1、ServletContext对象介绍1_方法介绍2_用例分析 2、ServletContainerInitializer1_整体结构2_工作原理3_使用案例 3、Spring案例源码分析1_注册DispatcherServlet2_注册配置类3_SpringServletContainerInitializer 4_总结 ServletContext 表示上下文对象&#xff0c;…