web151~152
抓包改后缀,把png改成php,然后一句话木马直连。
web153
这题目进度有点快啊,还以为单一验证的预期解是通过phtml等没有被加入黑名单的后缀名绕过,没想到直接就.user.ini
了。
对于.user.ini
的利用可以看user.ini文件构成的PHP后门这篇文章,主要就是关于文件包含的配置项:auto_prepend_file
和auto_apend_file
,这两个配置项有什么功能呢?
在官方手册中这样记载:
auto_prepend_file字符串 指定在主文件之前自动解析的文件的名称。如同使用require函数调用文件一样包含文件,因此使用include_path。
auto_append_file字符串 指定在主文件之后自动解析的文件的名称。如同使用require函数调用文件一样包含文件,因此使用include_path。
也就是一个先包含再执行php,另一个先执行php再包含,后一个能成功包含的前提就是php程序没有退出,这点官方手册也说明了。
Note: If the script is terminated with exit(), auto-append will not occur.
使用auto_prepend_file
配置项上传.user.ini
auto_prepend_file=0.png
然后png传个一句话木马,.user.ini
的生效时间默认是300秒,也就是5分钟,到点蚁剑连upload/
就行。
web154~158
内容过滤了一些关键字,fuzz一下就能知道,直接.user.ini
包含png,使用短标签<?=system('tac ../f*')?>
读取flag。
web159
大中小括号都ban了,直接反引号命令执行
|
|
web160
反引号也ban了,预期解应该是字符串拼接完成nginx日志包含,我这里是使用伪协议读取flag文件(知道flag路径和文件名就是任性):
|
|
web161
加个图片的文件头,比如GIF的GIF89a
,然后和160一样。
web162~163
又ban了点,不能使用字符串拼接了,使用session文件包含,这个点在文件包含出现过,传送门。
.user.ini
GIF89a
auto_prepend_file=/tmp/sess_tyskill
脚本
|
|
web164~165
二次渲染,使用CTFSHOW文件上传篇的脚本即可。
后面的就不做了,太懒了😓