建站知识
php 5.2.13漏洞
2024-12-26 18:06  点击:3
PHP 5.2.13漏洞(CVE-2010-0554)是一种远程代码执行(RCE)漏洞,可通过反序列化攻击手段在PHP应用中进行解包和组包的过程中攻击到系统环境,进而导致系统崩溃和代码执行失控的问题。此漏洞主要影响运行PHP 5.2.6至5.2.13版本的Web应用程序,包括PHP自带的序列化函数及其的文件handle.c。此漏洞的有效利用将导致入侵者完全控制受影响的系统,包括潜在的敏感信息泄露。以下是一些常见的反序列化导致的攻击场景:1、类属性的反序列化注入攻击$object = unserialize($_GET['object']);$object->function();攻击者构造特定的样本串(buffer):[00]表示属性,[01]表示对象结束。在反序列化时匹配到属性时,开辟一块内存并拷贝字节序列,最终可以对反序列化后的类进行注入。2、利用unserialize()中引用的递归特性我们创建两个类,父类和子类,子类继承父类,其属性是Object,可以反序列化。class parent{public $obj;public function __wakeup(){echo "AAAAAAAA\n";}}class child extends parent{}$obj1 = new child;$obj1->obj = new parent;$obj1->obj->obj = &$obj1->obj;$ser = serialize($obj1);攻击者可以在样本串(buffer)中插入循环引用,就会出现溢出。3、使用register_shutdown_function()函数当PHP解释器完成后执行了所有流程,但脚本还没有退出的时候,PHP会执行一些额外的任务。其中一个就是执行register_shutdown_function()函数。攻击者可以通过自己实现这个函数,来达到攻击的效果。function __destruct(){//故意制造错误$msg = "刚输完密码就挂掉";error_log($msg);}