apache解析漏洞及修复方法

时间:2013-4-6    作者:admin    分类: 原创文章


apache对文件后缀的解析方法是”.”后边的都是后缀,从后到前,如果后缀无效,会解析前一个,例如 1.php.x1.x2.x3 他会先解析x3,不存在解析x2,不存在解析x1,都不存在就只能解析php了。如图:

01

定义后缀,但是不可能所有后缀都定义吧?x1.x2.x3可以换成任意后缀

例如1.php.a,.a没有定义,apache不明白a是什么后缀,就向前解析,也就是去解析php。

用伪静态能解决这个问题,重写类似.php.*这类文件

打开apache的httpd.conf

找到LoadModule rewrite_module modules/mod_rewrite.so

把#号去掉,重启apache,在网站根目录下建立.htaccess文件,代码如下:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule .(php.|php3.) /index.php
RewriteRule .(pHp.|pHp3.) /index.php
RewriteRule .(phP.|phP3.) /index.php
RewriteRule .(Php.|Php3.) /index.php
RewriteRule .(PHp.|PHp3.) /index.php
RewriteRule .(PhP.|PhP3.) /index.php
RewriteRule .(pHP.|pHP3.) /index.php
RewriteRule .(PHP.|PHP3.) /index.php
</IfModule>

可能会误杀,对我来说暂时也没发现误杀。根据自己要求修改自己定义的执行php的后缀,用|隔开就行。 /index.php可以换成你想要显示的文件.

效果如图:

apachejiexi

标签: apache 解析漏洞