PHP反序列化漏洞 可用于攻击Wordpress和Typo3等站点

来自Secarma的安全研究员Sam Thomas 发现了一种新的开发技术,可以使黑客更容易使用以前风险较低的函数触发PHP编程语言中的关键反序列化漏洞。这项新技术使成千上万的Web应用程序受到远程代码执行攻击,包括由一些流行的内容管理系统(如WordPress和Typo3)提供支持的网站。

反序列化漏洞

序列化就是把对象转换成字节流,便于保存在内存、文件、数据库中;反序列化即逆过程,由字节流还原成对象。PHP反序列化或对象注入漏洞最初是在2009年记录的,这可能允许攻击者通过向unserialize()PHP函数提供恶意输入来执行不同类型的攻击。

研究人员发现攻击者可以使用针对Phar档案的低风险函数来触发反序列化攻击,而无需在各种场景中使用unserialize()函数。

Phar文件是PHP中的一种存档格式,它以序列化格式存储元数据,只要文件操作函数(fopen,file_exists,file_get_contents等)试图访问存档文件,它就会被反序列化。

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

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

托马斯演示了如何使用作者帐户对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中解决了这个问题。

原文链接:http://toutiao.secjia.com/article/page?topid=110712

上一篇:《NIST小企业网络安全法》生效 自愿采用或成痛点

下一篇:JavaScript Web应用程序和服务器易受ReDoS攻击