网鼎杯2020朱雀组

考察反序列化,主要是找到反序列化的触发点

抓包可以发现,有func和p两个参数,这里func是data函数,p是时间函数的格式,达到的效果刚好就是左上角的时间显示,我们可以设想一下,这里会不会可以实现任意函数,try:

抓个包对参数更改一下:func=readfile&p=index.php

于是得到了index.php的代码:

11.png

disable_fun 那里过滤了很多函数,但是,我们可以发现这里有Test类,类里面有__destruct函数,且调用了gettime()函数,而且disable_fun没有ban掉 unserialize()函数,可以考虑利用反序列化来实现所有我们想要的函数。先找到flag文件所在的位置,我们这样来构造序列化:

12.png

13.png

然后再构造读取flag的序列化字符串:

14.png