Black Hat 2018黑客大会 Expert演示新型PHP代码执行漏洞

  • A+
所属分类:网络安全新闻

来自Secarma的安全研究员Sam Thomas 发现 了一种利用PHP编程语言中的关键反序列化漏洞的新攻击技术。
这些漏洞可能会将使用流行语言编写的Web应用程序暴露给网络攻击,包括运行像WordPress和Typo3等CMS的网站。

专家发现,攻击者可以使用针对Phar档案的低风险函数来触发反序列化攻击,而无需使用unserialize()函数。Phar存档类似于Java JAR存档,但特定于PHP应用程序。Phar应用程序或库可以分布在单个文件中。

Phar文件包括序列化格式的元数据。对于归档文件上的每个文件操作函数(fopen,file_exists,file_get_contents等),数据都是非序列化的。

“通常,这些存档用于保存自解压或自包含的应用程序,
就像可以执行Jar存档一样,Phar存档包含一个包含PHP
代码的可执行存根。为了解决手头问题的关键,Phar档案还可以包含元数据,并且:
“元数据可以是任何可以序列化的PHP变量。” Thomas写道。

当任何(!)文件操作首次访问Phar存档时,此元数据将被反序列化。这
将打开大门,反序列化时,其路径上出现文件操作的攻击
开始被攻击者控制。这对于直接文件操作(例如
“file_exists”)和间接操作(例如在XML 中的外部实体处理期间发生的操作)
(即正在利用XXE漏洞时)都是如此。

托马斯在Black Hat黑客大会上演示了如何使用作者帐户触发破解WordPress网站的漏洞并完全控制底层Web服务器。

攻击者可以通过将包含恶意负载的特制Phar存档上传到目标的本地文件系统,然后使用“phar://”流包装器访问它来触发漏洞。
Thomas解释说,可以通过转换JPEG图像中的Phar存档来执行攻击,这种操作可以通过修改前100个字节来实现。

“应用程序中某些缩略图功能的工作方式使具有
上传和修改媒体项目权限的攻击者能够充分控制
”file_exists“调用中使用的参数,从而导致发生反序列化。”研究人员解释道。

Black Hat 2018黑客大会 Expert演示新型PHP代码执行漏洞

“核心漏洞位于/wpincludes/post.php中的wp_get_attachment_thumb_file函数中:”

一旦将恶意缩略图上传到运行WordPress网站的目标服务器上,攻击者就可以使用另一个函数使用“phar://”流包装器将图像文件作为Phar存档进行调用。

“可以通过对”wp.getMediaItem“方法的XMLRPC调用来实现此功能,使用
$ imagedata ['thumb']的任意值和$ file的部分控制值。
get_attached_file也从/wp-includes/post.php返回$ file“继续分析。

正在创建/编辑帖子的远程经过身份验证的攻击者可以上载恶意图像并在目标系统上执行任意PHP代码。
Thomas于2017年2月28日向WordPress安全团队报告了他的调查结果。WordPress发布了一个安全更新,但没有完全解决问题。

研究人员还在2018年6月9日报告了Typo3的缺陷,问题随着版本7.6.30,8.7.17和9.3的发布而得到修复。

CE安全网
网络安全宣传推广

发表评论

您必须登录才能发表评论!