CISCN2020 初赛WEB writeup
CISCN2020 初赛WEBwriteup
babyunserialize
题目给了源码
经过一番搜索(搜__destruct)找到了image.php jig.php ws.php
查看了一番代码,发现jig.php里面有write函数,综合查看一番,是可以任意写文件的。
根据代码,写入初始化变量的值:
这样即可让它写到web根目录里面的shell.php中。
然后就是输出url编码的序列号字符串了:
然后访问:
1 |
|
即可成功getshell
然后通过phpinfo();查看环境变量里面的flag值即可。
easytrick
直接给了源代码,尝试过让trick1=array(“0”) trick2=array(1)
结果发现在__destruct中把trick1强制转为了字符串,直接变成了string(5) “Array”
后来发现当浮点数过大的时候会变成INF
所以让
1 |
|
最后得到序列化字符串:
1 |
|
然后提交即可成功getflag
littlegame
很明显考察原型链污染。
查看源码就不说了
GET访问/SpawnPoint初始化session
查看代码发现使用 set-value,该js允许使用.来设置对应key的value
那么我们可以看到:
1 |
|
那么我们可以通过
1 |
|
污染Admin这个object的键值对
然后再:
顺利得到flag
rceme
直接给了代码,发现payload必须满足{if:xxxx}xxx{end if}格式
对于每一个xxx都会通过danger_key()过滤一下
综合一下还是采用hex2bin配合array_map绕过,把system /catflag都转成hex(array_filter也可以)
最终的payload为
1 |
|
另一个
题目忘了,没做出来,后来看了一下,让子进程异常就行了。
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!