美文网首页
Apache解析漏洞

Apache解析漏洞

作者: seeiy | 来源:发表于2018-10-15 21:35 被阅读254次
Apache解析漏洞跟IIS不一样,Apache的文件解析漏洞主要与用户的配置有密切关系,配置不当造成的。

环境准备

需要使用Ubuntu的docker,运行一下命令安装环境

1.apt-get install apache2
2.apt-get install php7.0
3.apt-get install libapache2-mod-php7.0

这里有个点就是CentOS下安装软件的命令是yum,Ubuntu是apt-get

第三条命令是指定Apache和PHP的结合方式,因为如果要启动环境的话分别启动两个太麻烦,将两者结合,只需要启动Apache就可以。

Apache和PHP三种结合方法:
1.CGI:共同网关接口,是HTTP服务器与机器上其他程序进行通信的一个借口,让WEb服务器必要时启动额外的程序处理动态内容。
2.FastCGI:CGI解释器的更快实现,可以提供良好的性能、伸缩性、Fail-Over特性等
3.Module:把PHP编译为Apache模块,也是用的最多的一种方法(这里第三条命令就是这种方法)

查看Apache和PHP的结合方法:
/usr/sbin/apachectl -M | grep php

一些配置文件的含义和作用

/etc/mime.types

这里记录了大量的文件后缀和mime类型,当客户端请求一个文件时,如果后缀在这个列表里,那么Apache就返回对应的content-type给浏览器。如果不在列表,Apache不会返回content-type给浏览器,而是直接返回文件内容,由浏览器自动处理。

2.查看Apache解析PHP的方法

cat /etc/mime.types | grep php

这里可以看到这个配置文件是注释掉了所有的关于PHP

3.真正的Apache解析PHP的方法

/etc/apache2/mods-enabled/php7.2.conf
1.png

这里的意思是如果请求的文件名满足这个正则表达式(文件的最后一个后缀是php|php3....)就把文件交给PHP处理器(php_module)来处理,处理完之后结果返回给Apache,再由Apache发送给浏览器。

4.其实Apache文件解析漏洞涉及到一个文件解析的特性:Apache默认一个文件可以有多个以点分割的后缀,当最右边的后缀无法识别(不在mime.types内),则继续向左识别。

举个栗子,如果有这么一个文件1.php.xxx.yyy,.yyy无法识别,向左,.yyy无法识别,向左,.php可以识别,交给PHP来处理这个文件(但是这里别忘记了前面那个/etc/apache2/mods-enabled/php7.2.conf文件的内容哦,是以最后一个点后缀作为文件类型的),因此这里PHP并不认识.yyy这个后缀,无法识别,所以就直接输出了代码。

5.前面说了Apache的解析漏洞是由于运维人员配置存在问题,所以这里就说到是什么配置出现问题。

解析漏洞的产生是由于运维人员在配置服务器时,为了使Apache能够解析PHP,而自己添加了一个handler。


2.png
AddHandler application/x-httpd-php .php

这句话的作用也是为了让Apache把PHP文件交给php_moudle解析,但是它与sethandler的区别是它的后缀不是用正则去匹配。所以在文件名的任何位置匹配到php后缀,他都会让php_module解析。
之前那个1.php.xxx.yyy文件就会是这样的顺序,.yyy无法识别,向左,.xxx无法识别,向左,.php可以识别,就激活php处理器,执行PHP代码,解析漏洞就产生了。

6.防御方法
运维人员正确配置文件,不要偷懒乱配置,要注意权限和范围的问题。这里就是不要使用AddHandler,改用SetHandler,写好正则,就不会有问题。

<FileMatch ".+\.php$">
SetHandler application/x-httpd-php
</FileMatch>

禁止.php.这样的文件执行

<FileMatch ".+\.ph(p[3457]?|t|tml)\.">
Require all denied
</FileMatch>

相关文章

  • 文件上传之解析漏洞

    解析漏洞 IIS解析漏洞 IIS6.0在解析文件时存在以下两个解析漏洞 WebDav漏洞 Apache解析漏洞 N...

  • 中间件漏洞

    一.本文介绍 1、本文介绍IIS5.x-6.x目录解析漏洞、文件解析、解析文件类型、7.5解析漏洞;Apache后...

  • Apache解析漏洞

    Apache解析漏洞跟IIS不一样,Apache的文件解析漏洞主要与用户的配置有密切关系,配置不当造成的。 环境准...

  • Apache 换行解析漏洞CVE-2017-15715

    1.漏洞原理 此漏洞的出现是由于 apache 在修复第一个后缀名解析漏洞时,用正则来匹配后缀。在解析 php 时...

  • Web中间件常见漏洞总结:

    一、IIS中间组件: 1、PUT漏洞 2、短文件名猜解 3、远程代码执行 4、解析漏洞 二、Apache中间组件:...

  • Apache解析漏洞的构造与加固

    一. Apache解析漏洞的构造 1. 实验环境 Windows 10+PHPstudy2014 2. apach...

  • Linux 服务 安全

    apache2.sh 常见问题 解析漏洞不管文件最后后缀为什么,只要是.php.*结尾,就会被Apache服务器解...

  • apache mime默认解析漏洞

    解决方案一 在httpd.conf或httpd-vhosts.conf中加入以下语句,从而禁止文件名格式为*.ph...

  • Apache文件解析漏洞复现

    1.使用Docker搭建环境 1.首先拉取一个基础镜像 2.启动一个容器 3.进入容器 4.更换apt源 5.安装...

  • 2021-02-02Apache Druid 命令执行漏洞(CV

    () Apache Druid 命令执行漏洞(CVE-2021-25646) 一、漏洞描述 Apache Drui...

网友评论

      本文标题:Apache解析漏洞

      本文链接:https://www.haomeiwen.com/subject/qweqzftx.html