PHP反序列化缝隙安全公告

颁布功夫 2018-08-23

缝隙编号和级别

 

CVE编号:无,,,,, ,,危险级别:高危,,,,, ,,CVSS分值:官方未评定


影响版本


PHP > 5.3


缝隙概述


Secarma 公司的安全钻研员 Sam Thomas 发现一种新型利用技术,,,,, ,,可导致黑客通过使用此前被以为风险较低的函数触发 PHP 说话中严沉的反序列化缝隙。。。。。 。 。这种新技术导致成千上万款 web 利用法式易遭远程代码执行攻击,,,,, ,,蕴含一些受热点内容治理系统驱动的网站如 WordPress 和 Typo3。。。。。 。 。


PHP 反序列化或对象注入缝隙最早产生在2009年,,,,, ,,它可导致攻击者通过向 unserialized () PHP 函数提供恶意输入的步骤执行多种攻击。。。。。 。 。序列化是将数据对象转换为纯字符串的过程,,,,, ,,而反序列化函数援手法式从字符串沉新创建对象。。。。。 。 。Thomas 发现攻击者能使用针对 Phar 文件的低风险函数触发反序列化攻击,,,,, ,,而无需在各类场景中使用 unserialize () 函数。。。。。 。 。Phar 文件是 PHP 中的一种存档体式,,,,, ,,它以序列化体式存储元数据,,,,, ,,当文件操作函数 (fopen、file_exists、file_get_contents 等)试图接见存档文件时就会被反序列化。。。。。 。 。


缝隙验证


大无数PHP文件操作允许使用各类URL和谈去接见文件蹊径:如data://,,,,, ,,zlib://或php://。。。。。 。 。其中一些通常用于利用远程文件蕴含缝隙,,,,, ,,攻击者能够利用它们节造文件蕴含的齐全蹊径,,,,, ,,但是很少人关注 phar://,Phar(PHP Archive)文件的有趣之处在于它蕴含序列化体式的元数据。。。。。 。 。通过以下代码创建phar


8827太阳集团(Macau)股份有限公司-Official website


通过以下代码进行测试:


8827太阳集团(Macau)股份有限公司-Official website


通过执行了局能够看到,,,,, ,,若是此刻通过phar://对我们现有的Phar文件进行文件操作,,,,, ,,则其序列化元数据将被反序列化。。。。。 。 。这意味着我们在元数据中注入的对象将被加载到利用法式钟祝。。。。 。 。若是此利用法式拥有已定名的类TestObject,,,,, ,,并且拥有魔术函数destruct()或wakeup(),,,,, ,,则会自动挪用这些步骤。。。。。 。 。这意味着我们能够在代码库中触发任何析构函数或唤醒步骤,,,,, ,,若是这些魔法函数对我们注入的数据进行操作,,,,, ,,那么这可能会导致进一步的缝隙。。。。。 。 。


攻击者若是能够节造诸如include(),,,,, ,,fopen(),,,,, ,,file_get_contents(),,,,, ,,file()等文件操作的函数,,,,, ,,则能够造成严沉的缝隙。。。。。 。 。因而,,,,, ,,通常必要在这些函数使用前验证用户的输入。。。。。 。 。


到目前为止,,,,, ,,攻击者若是能够节造诸如include(),,,,, ,,fopen(),,,,, ,,file_get_contents(),,,,, ,,file()等文件操作的函数,,,,, ,,则能够造成严沉的缝隙。。。。。 。 。因而,,,,, ,,通常必要在这些函数使用前验证用户的输入。。。。。 。 。


建复建议


Thomas 将问题奉告 WordPress,,,,, ,,后者证实该问题存在。。。。。 。 。WordPress颁布的补丁并未齐全解决这个问题。。。。。 。 。


Thomas 将缝隙奉告 Typo3 公司,,,,, ,,Typo3颁布版本 7.6.30、8.7.17 和 9.3 解决了该问题。。。。。 。 。


缓解规划:


1、对PHAR档案进行署名检测。。。。。 。 。


2、若是不必要,,,,, ,,禁用PHAR扩大。。。。。 。 。


参考链接


https://thehackernews.com/2018/08/php-deserialization-wordpress.html