漏洞原理:
Apache 解析文件的规则是从右到左开始判断解析,如果后缀名为不可识别文件解析,就再往左判断。比如 test.php.a.b的“.a”和”.b” 这两种后缀是apache不可识别解析,apache就会把test.php.a.b解析成test.php。
实验环境:
- PHPstudy
- Apache服务器(wamp2.0)
实验模拟:
在www目录下创建名为1.php.a.b
的文件
内容为:
<?php phpinfo();?>
然後在浏览器中打开此文件,成果展示:
其余配置问题导致的漏洞
1、如果在 Apache 的 conf 里有这样一行配置 AddHandler php5-script .php
这时只要文件名里包含.php
即使文件名是test2.php.jpg
也会以 php 来执行。
2、如果在 Apache 的 conf 里有这样一行配置 AddType application/x-httpd-php .jpg
即使扩展名是jpg
一样能以 php 方式执行。