buuctf-upload

[MRCTF2020]你传你🐎呢

先上传一个图片,发现上传成功了,还给出了文件的保存路径

再尝试上传1.php但是出现了,报错提示

首先尝试的是,将Content-Type: image/jpeg改为图片类型,但是还是无法上传

再尝试一下.htaccess文件

文件内容

"a.jpg">
1
2
SetHandler application/x-httpd-php
</FilesMatch>

上传成功后,再上传包含一句话木马的 a.jpg文件,.htaccess文件的作用就是将指定类型的文件当作php文件运行

所以表面上是jpg类型的文件,但是是当作php文件

上传成功后,蚁剑访问url+/upload/3af588e32ac72180588d18d5c3b470b4/a.jpg

密码为:cmd

[SUCTF 2019]CheckIn

试着上传php文件,提示非法后缀名,继续修改后缀名,发现php3,php5,phtml等可执行文件后不可上传

想到上传.htacess文件,但是也提示了非法后缀名,这个方法行不通了

但是之前做upload-labs中还有一个上传.user.ini的文件

.user.ini是什么

这得从php.ini说起了。php.ini是php默认的配置文件,其中包括了很多php的配置,这些配置中,又分为几种:PHP_INI_SYSTEMPHP_INI_PERDIRPHP_INI_ALLPHP_INI_USER

.user.ini的作用

可以借助.user.ini轻松让所有php文件都“自动”包含某个文件,而这个文件可以是一个正常php文件,也可以是一个包含一句话的webshell

传送门

开始做题

上传.user.ini文件

GIF89a是GIF文件内容开头的几个字符,其作用是为类绕过exif_imagetype()

上传1.gif

文件保存的路径已经给出,开始蚁剑链接的连接是

1
url/uploads/04b0951938d905b41348c1548f9c338b/1.gif

但是一直连接不上

后来链接index.php才连接上,这里想到了.user.ini作用,是让所有的php文件包含整个一句话木马,而这里文件路径存在一个index.php,所有说index.php中也存在这个一句话木马

1
/uploads/04b0951938d905b41348c1548f9c338b/index.php