[代码审计]php反序列化漏洞
0x01 php面向对象简介 对象:可以对其做事情的一些东西。一个对象有状态、行为和标识三种属性。 类:一个共享相同结构和行为的对象的集合。 每个类的定义都以关键字class开头,后面跟着类的名字。 一个类可以包含有属于自己的变量,变量(称为“属性”)以及函数(“称为方法”)。 类定义了一件事物的抽象特点。通常来说,类定义了事物的属性和它可以做到的。 类可能会包含一些特殊的函数叫magic函数,magic函数命名是以符号“_”开头的,比如_construct,_destruct,_toString,_sleep,_wakeup等。 这些函数在某些情况下会自动调用,比如:_construct当一个对象创建时调用(constructor);_destruct当一个对象被销毁时调用(destructor);_toString当一个对象被当作一个字符串时使用。 0x02 php对象概念及特性 我们先创建一个简单的php对象: <?php class TestClass { //一个变量 public $variable = 'This is a string'; //一个简单的方法 public function PrintVariable() { echo $this->variable; } } //创建一个对象 $object = new TestClass(); //调用一个方法