Apache解析漏洞

Apache中,访问:liuwx.php.360会从右往左识别后缀,存在解析漏洞的时候,会从右往左识别哪个能解析,360是不能被解析,然后往左识别到php就识别能解析,这就是Apache的解析漏洞

漏洞复现环境

1
2
3
4
5
Windows Server 2003_x64

Apache

PhpStudy

2003服务器必须能和PC物理主机相互Ping通

在这里我物理主机的IP是:192.168.1.101

2008虚拟机的IP是:192.168.119.134

图片

提示:如果物理主机Ping不通2003,那么就吧2003的防火墙关闭就可以了!

网络环境安装完后,直接安装Phpstudy:

图片

安装完Phpstudy用到的版本是:

Apache + PHP 5.2

图片

Apache搭建的网站,默认的玩这个更目录是:C:\phpstudy\WWW

图片

访问:http://192.168.119.134/1.txt

图片

OK!这个时候我们的网站已经环境都已经安装完毕了!

图片

1
2
3
4
5
6
7
8
9
10
11
服务器域名/IP地址	:192.168.119.134(192.168.119.134)

服务器解译引擎:Apache/2.4.10 (Win32) OpenSSL/0.9.8zb PHP/5.2.17

服务器端口:80

服务器主机名:HACKER

绝对路径:C:/phpstudy/WWW

探针路径:C:/phpstudy/WWW/l.php

漏洞原理

Apache文件解析漏洞与用户的配置有密切的关系,严格来说属于用户配置问题。Apache文件解析漏洞涉及到一个解析文件的特性。Apache默认一个文件可以有多个以点.分割的后缀,当右边的后缀无法识别,则继续向左识别,发现后缀是php,交个php处理这个文件。

漏洞复现

首先创建了一个liwux.shell的文件:

图片

很显然.shell的文件后缀是未知的后缀名,但是浏览器还是把它当做php执行解析了!

图片

我们把后缀换成熟悉的格式:liwux.php.aaa:

图片

可以看到,任然能够正常的解析php

漏洞防御

1、修改Apache的主配置文件:C:\phpstudy\Apache\conf\httpd.conf

对apache的配置文件做适当修改,在文件中添加下面几行代码

1
2
3
4
5
6
7
<FilesMatch ".(php.|php3.|php4.|php5.)">

Order Deny,Allow

Deny from all

</FilesMatch>

2、禁止.php.文件的访问权限