[SUCTF 2019]CheckIn

同样BUU的一分题,总结一下知识点

fuzz了一下,过滤大概为这些

··· 无法上传php一句话(我在说废话)

··· 存在文件头过滤,需要添加图片文件的文件头 GIF89a

··· 文件的内容不能包含<?,但可以上传<script language='php'><scirpt>类型的图片马来绕过

本题用到了.htaccess之后的.user.ini

在PHP手册中查到了有关信息

也就是说我们可以在.user.ini中设置php.iniPHP_INI_PERDIR 和 PHP_INI_USER 模式的 INI 设置,而且只要是在使用 CGI/FastCGI 模式的服务器上都可以使用.user.ini

有两个参数:auto_prepend_fileauto_append_file

查询了一下官方手册

我们指定一个文件(如aa.jpg),那么该文件就会被包含在要执行的php文件中(如index.php),类似于在index.php中插入一句:require(./a.jpg);

这两个设置的区别只是在于auto_prepend_file是在文件前插入;auto_append_file在文件最后插入(当文件调用的有exit()时该设置无效)

所以我们上传一个

GIF89a
auto_prepend_file=a.jpg

的.user.ini

然后上传图片马即可获得flag

system('cat /flag');

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注

Protected with IP Blacklist CloudIP Blacklist Cloud