实战-最新PHP-RCE+详细分析(CVE-2024-4577)
G0mini
- 关注
0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9
收藏一下~
可以收录到专辑噢~
实战-最新PHP-RCE+详细分析(CVE-2024-4577)
前言
最新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查看元件源码
攻击过程
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");?>
后面官方修补的补丁中也就是把”-”这个字符给匹配过滤了
而最新版的RCE之所以只会影响繁体中文、简体中文、日文这三个语言版本的windows系统,
就是因为有大神找到了-的编码绕过方式,在我们带入参数拼接前宽字节会被转换,0x00ad显然不是一个完整的字节,而是一部分字节。
而在中文GBK编码中正好可以找到一个-来对其进行%ad编码从而绕过
实战截图
总结
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
免责声明
1.一般免责声明:本文所提供的技术信息仅供参考,不构成任何专业建议。读者应根据自身情况谨慎使用且应遵守《中华人民共和国网络安全法》,作者及发布平台不对因使用本文信息而导致的任何直接或间接责任或损失负责。
2. 适用性声明:文中技术内容可能不适用于所有情况或系统,在实际应用前请充分测试和评估。若因使用不当造成的任何问题,相关方不承担责任。
3. 更新声明:技术发展迅速,文章内容可能存在滞后性。读者需自行判断信息的时效性,因依据过时内容产生的后果,作者及发布平台不承担责任。
本文为 G0mini 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏

相关推荐
实战攻防 | 艰难打点之bypass绕过文件上传
2024-07-17
攻防对抗组合漏洞RCE-致远OA
2024-07-15
单洞过W之开发测试生产UAT挖掘思路
2024-07-15
文章目录