[SUCTF 2019]CheckIn

/ 0评 / 0

同样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');

发表回复

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