新的PHP代码执行后可能会使WordPress网站面临风险

来自Secarma的安全研究员Sam Thomas 发现了一种新的开发技术,可以使黑客更容易使用以前风险较低的函数触发PHP编程语言中的关键反序列化漏洞。 这项新技术使成千上万的Web应用程序受到远程代码执行攻击,包括由一些流行的内容管理系统(如WordPress和Typo3)提供支持的网站。 PHP反序列化或对象注入漏洞最初是在2009年记录的,这可能允许攻击者通过向unserialize()PHP函数提供恶意输入来执行不同类型的攻击。 如果您不知道,序列化是将数据对象转换为纯字符串的过程,并且反序列化函数帮助程序从字符串重新创建对象。 Thomas发现攻击者可以使用针对Phar档案的低风险函数来触发反序列化攻击,而无需在各种场景中使用unserialize()函数。 Phar文件是PHP中的一种存档格式,它以序列化格式存储元数据,只要文件操作函数(fopen,file_exists,file_get_contents等)试图访问存档文件,它就会被反序列化。

“对于直接文件操作(例如”file_exists“)和间接操作(例如在XML中的外部实体处理期间发生的那些操作(即,正在利用XXE漏洞时))都是如此,”Thomas说。

利用针对WordPress站点的PHP反序列化攻击

在上周Black Hat会议上发布的详细论文中,Thomas演示了如何使用作者帐户对Wordpress站点执行此攻击,以完全控制Web服务器。 为了成功利用该漏洞,攻击者需要做的就是将包含恶意有效负载对象的有效Phar存档上传到目标的本地文件系统,并使文件操作功能使用“phar://”流包装器访问它。 托马斯还透露,攻击者甚至可以使用JPEG图像利用此漏洞,最初是通过修改前100个字节将Phar存档转换为有效的JPEG。

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

一旦精心设计的缩略图上传到目标WordPress服务器上,攻击者就可以使用另一个函数使用“phar://”流包装器调用与Phar存档相同的图像文件,最终在程序反序列化元数据时执行任意代码。

“该漏洞存在是由于作为图像文件传递的数据不安全反序列化,然后通过'/wpincludes/post.php'脚本中'wp_get_attachment_thumb_file'函数中的'phar://'流包装器执行,”一份通报读到。

“具有创建/编辑帖子能力的远程认证攻击者可以上传恶意图像并在易受攻击的系统上执行任意PHP代码。”

托马斯去年早些时候向WordPress安全团队报告了此漏洞,该公司承认了这一问题。但是,该公司发布的补丁并未完全解决问题。 Thomas还报告了2018年6月9日Typo3的漏洞,该供应商在版本7.6.30,8.7.17和9.3中解决了这个问题。 有关此漏洞的更多详细信息,您可以查看 Secarma发布的详细文章[ PDF ]。

  • 发表于:
  • 原文链接https://thehackernews.com/2018/08/php-deserialization-wordpress.html
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券