文件解析漏洞

1、IIS6.0解析漏洞

目录解析

形式 www.xx.com/xx.asp/xx.jpg  会把xx.asp目录下的文件解析成asp文件

文件解析

形式 www.xx.com/xx.asp;.jpg  服务器默认不解析;号后面的内2

2、apache1.x 2.x 解析漏洞

原理:apache解析文件的规则是从右向开始判断。比如text.php.a.b   .a.b不能识别

还有其余配置问题导致漏洞:在apache的conf里一行配置AddHandler php5-script.php 这时只要文件名里包含.php,即使文件名是test2.php.jpg也会以php来执行

在apache的conf里一行配置AddType application/x-httpd-php.jpg 即使扩展名是jpg,一样能以php方式执行

3、nginx解析漏洞

漏洞原理:由于cgi模式运行,中间件识别到php程序后,直接将请求转发给php,php由于默认开启cgi.fix_pathinfo,导致php会执行a.jpg

nginx拿到文件路径/test.jpg/test.php,一看后缀是.php,便认为该文件是php文件,转交给php,php一看/test.jpg/test.php不存在,便删去最后的/test.php,又看/test.jpg存在,便把/test.jpg当成要执行的文件了。

       这其中涉及一个php的选项:cgi.fix_pathinfo ,该值默认为1,标识开启。开启这一选项PHP可以对文件路径进行‘‘修理’’。PHP遇到文件路径“/1.jpg/2.txt/3.php”时,若“/1.jpg/2.txt/3.php”不存在,则会删去最后的“/3.php”,然后判断“/1.jpg/2.txt”存不存在,若存在,则把“/1.jpg/2.txt”当做文件“/1.jpg/2.txt/3.php”,若不存在,则继续删去“/2.txt”,以此类推。Nginx默认是以CGI的方式支持PHP解析的,普遍的做法是在Nginx配置文件中通过正则匹配设置SCRIPT_FILENAME。当访问www.xx.com/phpinfo.jpg/1.php这个URL时,$fastcgi_script_name会被设置为“phpinfo.jpg/1.php”,然后构造成SCRIPT_FILENAME传递给PHP CGI,开启了这个选项,那么就会触发在PHP中的如下逻辑:PHP会认为SCRIPT_FILENAME是phpinfo.jpg,而1.php是PATH_INFO,所以就会将phpinfo.jpg作为PHP文件来解析了

漏洞形式 www.xxx.com/uploadfiles/image/1.jpg/1.php

另外两种解析漏洞

www.xxx.com/uploadfiles/image/1.jpg%00.php

www.xxx.com/uploadfiles/image/1.jpg/%20\0.php

上传一个名字为test.jpg,然后访问test.jpg/.php,在这个目录下就会生成一句话木马shell.php。

解决方法

vim /usr/local/nginx/conf/fastcgi_params 

增加以下到文件最前面:  

if ($request_filename ~* (.*)\.php) {    
    set $php_url $1;    
}    
if (!-e $php_url.php) {    
    return 403;    
}

 

打开类似于这样的链接http://www.xxx.com/a.jpg/a.php  会出现403

php.ini 设置cgi.fix_infopath0

4、IIS7.5解析漏洞

IIS7.5的漏洞与nginx的类似,都是由于php配置文件中,开启了cgi模式,而这不是nginx或者IIS7.5本身的漏洞

IIS7/7.5在Fast-CGI运行模式下,在一个文件路径/xx.jpg后面加上/xx.php会将xx.jpg/xx.php解析为php文件

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值