文件解析漏洞小结

前言 0x00

文件解析漏洞主要由于网站管理员操作不当或者 Web 服务器自身的漏洞,导致一些特殊文件被 IIS、apache、nginx 或其他 Web服务器在某种情况下当成脚本文件解析执行了。从而导致解析漏洞的出现

IIS解析漏洞

1:目录解析(6.0),当一个目录后缀asp或asa时,此目录所有文件都会被当作asp脚本文件执行

       IIS6.0默认可执行文件还包括 xxx.asa    xxx.cer      xxx.cdx三种

2:文件名解析  xxx.asp;.jpg也会被当作asp

3:   畸形解析漏洞  如:xxx.jpg/*.php

修复方案:

1.目前尚无微软官方的补丁,可以通过自己编写正则,阻止上传xx.asp;.jpg类型的文件名。
 2.做好权限设置,限制用户创建文件夹。

IIS(7.5)

漏洞影响 IIS7 及IIS7.5 l

当安装完成后, php.ini里默认cgi.fix_pathinfo=1,对其进行访问的时候,在URL路径后添加.php后缀名会当做php文件进行解析,漏洞由此产生

http://127.0.0.1/1.gif/1.php

解决方案

第1种方案:继续使用FastCGI方式调用PHP,要解决这个安全问题可以在php.ini里设置 cgi.fix_pathinfo=0 ,修改保存后建议重启iis(注意可能影响到某些应用程序功能)。

第2种方案:使用ISAPI的方式调用PHP。(注意:PHP5.3.10已经摒弃了 ISAPI 方式)

Apache解析漏洞

1:Apache默认解析方式是从右往左解析,如xxx.php.owf.rar     owf和rar这两种后缀是Apache不能解析的,就会往左边依次解析,知道遇见.php则会成功解析 

2、配置问题:

(1)如果在 Apache 的 conf 里有这样一行配置 AddHandler php5-script .php 这时只要文件名里包含.php 即使文件名是  test2.php.jpg 也会以 php 来执行。
(2)如果在 Apache 的 conf 里有这样一行配置 AddType application/x-httpd-php .jpg 即使扩展名是 jpg,一样能以 php 方式执行

修复方案:

1、修改Apache配置文件  加入如下代码

    <FilesMatch “.(php.|php3.|php4.|php5.)”>
     Order Deny,Allow
     Deny from all
    </ FilesMatch>

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

Nginx文件解析漏洞

Nginx默认是以CGI的方式支持PHP解析的  默认开启cgi.fix_pathinfo  值为1时

当我们访问nginx.txt文件时,直接在后面加上/.php就会把此文件当作php处理了

另外一种利用手法:上传一个名字为test.jpg,以下内容的文件。
<?PHP fputs(fopen('shell.php','w'),'<?php eval($_POST[cmd])?>');?>
然后访问test.jpg/.php,在这个目录下就会生成一句话木马shell.php

修复方案:
1.修改php.ini文件,将cgi.fix_pathinfo的值设置为0;
2.在Nginx配置文件中添加以下代码:
if ( $fastcgi_script_name ~ ..*/.*php ) {
return 403;
}
这行代码的意思是当匹配到类似test.jpg/a.php的URL时,将返回403错误代码

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值