一、常见web容器
1.1 名词解释
- 服务器:一种管理资源并为用户提供服务的计算机。
web服务器,即www服务器或http服务器。提供web信息浏览服务。它只需支持HTTP协议、HTML文档及URL。向浏览器提供服务的程序。
- 中间件:提供系统软件和应用软件之间连接的软件,以便于软件各部件之间的沟通。中间件处在操作系统和更高一级应用程序之间。
- 容器:是中间件的一种,作为操作系统和应用程序之间的桥梁,给处于其中的应用程序组件(JSP,PHP,ASP)提供一个环境。使处于其中的应用程序组件直接跟容器中的环境变量接口交互,不必关注其他系统问题。
1.2 什么是web容器
web容器是一种服务程序,在服务器一个端口就有一个提供相对应服务的程序,而这个程序就是处理客户端发出的请求,如JAVA中的Tomcat容器,ASP的IIS都是这样的容器。一个服务器可以有多个容器。
我们常见的web容器有:IIS、Apache、Ngnix、Tomcat、Jboss、WebLogic
。
二、IIS简介
2.1 什么是IIS
IIS的全称是互联网信息服务(Internet Information Service),是由微软公司提供的基于运行Microsoft Windows的互联网基本服务。IIS包括FTP/FTPS、NNTP和HTTPS/HTTP、SMTP等服务。
.NET Framework
是基础类库,是程序运行的底层框架。ASP.Net
基于.NET Framework
的Web开发平台,也可认为是.NET
组件,并非编程语言。可以运行在安装了.NET Framework
的IIS服务器上。IIS
是架设web服务器用来提供网页浏览服务的,属于系统环境。一般用
ASP.Net
开发软件,然后靠IIS
对公网提供服务,软件的底层是.NET Framework
。
2.2 什么是文件解析
当服务器接收到一个HTTP请求的时候,IIS首先需要决定如何去处理这个请求(服务器处理一个。html
页面和一个.aspx
页面肯定是不一样的)。那IIS依据什么去处理呢?根据文件的后缀名进行处理。
服务器获取所请求的页面(也可以是文件,比如1.jpg)的后缀名以后,接下来会在服务器端寻找可以处理这类后缀名的应用程序,如果IIS找不到可以处理此类文件的应用程序,那么IIS将直接把这个文件返还给客户端。
三、IIS6.0 文件解析漏洞
3.1 漏洞利用
文件解析漏洞一般用于各种上传漏洞中,在文件上传的地方一般会限制用户可以上传文件的后缀名,比如php网站如果可以上传php文件,那么就可以上传一个php木马(也就是常说的getshell),然后控制该服务器。
(1)解析后缀名
IIS一般和asp搭配,上传的地方如果限制了.asp
的后缀名,那么首先想到的应该是使用其他IIS支持的文件后缀。IIS解析asp脚本除了.asp
后缀,还有.cer
和.asa
后缀。
(2)文件解析漏洞
如果网站把.asp
、.cer
、.asa
这样的可以被服务端解析的后缀名全部过滤了的话,就只能通过其他方法绕过。如文件解析漏洞。IIS 6.0 在处理含有特殊符号的文件路径时会出现逻辑错误,从而造成文件解析漏洞。这一漏洞有两种完全不同的利用方式:
-
/test.asp/test.jpg
,创建一个test.asp
的目录,该目录下的任何文件都被IIS当作asp程序执行(特殊符号是/
)
-
test.asp;.jpg
. 上传文件名为test.asp;.jpg
的文件,虽然该文件的真正后缀名是".jpg",但由于含有特殊符号;
,仍会被IIS当作asp程序执行。