
三者之间很多是包含关系,Web服务器>Web中间件>Web容器
web容器是一种服务程序,在服务器一个端口就有一个提供相应服务的程序,而这个程序就是处理从客户端发出的请求,如JAVA中的Tomcat容器,ASP的IS都是这样的容器。一个服务器可以有多个容器。
我们在常见web容器漏洞这部分学习中需要使用的容器如下:

IS的全称是互联网信息服务(英语:InternetInformation Services),是由微软公司提供的基于运行Microsoft Windows的互联网基本服务。IS包括FTP/FTPS、NNTP和HTTPS/HTTP、SMTP等服务。
相关词条解释:
一般用ASP.Net开发软件,然后靠IIS对公网提供服务,软件的底层是.net Framework。
当服务器接收到一个Http请求的时候,IIS 首先需要决定如何去处理这个请求(服务器处理一个.htm页面和一个.aspx页面肯定是不一样)。那IIS依据什么去处理呢? 根据文件的后缀名。
服务器获取所请求的页面(也可以是文件,比如1Jjpg)的后缀名以后,接下来会在服务器端寻找可以处理这类后缀名的应用程序,如果IS找不到可以处理此类文件的应用程序,那么IS将直接把这个文件返还给客户端。
这里要复现的是IIS6.0文件解析漏洞,使用了windows server2003作为环境。
开启关闭IS服务方法如下:

点击之后会弹出如下方框,按照如下方法选择之后即可看到自己的web目录中的文件和IIS服务的开始、停止、暂停按钮了。

在这个页面中是无法编辑自己的web服务的,需要在本机中找到web目录。这个环境中的默认web目录是在C:\Inetpub\wwwroot下的,在这里就可以编辑web目录,然后就可以进行我们后面的实验:

文件解析漏洞一般用于各种上传漏洞中,在文件上传的地方一般会限制用户可以上传文件的后缀名,比如php的网站如果可以上传php文件,那么就可以上传一个php木马然后控制该服务器了,也就是我们所说的getshell了。
那么实际的漏洞环境中IIS一般是和asp搭配的,上传的地方如果限制了.asp的后缀名那么首先想到的应该是使用其它IIS支持的文件后缀。其实IIS解析asp脚本除了.asp后缀还有.cer和.asa
如果网站将.asp、.cer、.asa这样的可以被服务端解析的后缀名全部过滤了的话,就只能通过其它的一些方法绕过了。就比如文件解析漏洞。
IIS 6.0在处理含有特殊符号的文件路径时会出现逻辑错误,从而造成文件解析漏洞。这一漏洞有两种完全不同的利用方式:
/test.asp/test.jpg
test.asp;.jpg第一种是新建一个名为“test.asp”的目录,该目录中的任何文件都被IIS当做asp程序执行(特殊符号是“/”)

第二种是上传名为“test.asp;.jpg”的文件,虽然该文件真正的后缀名是“.jpg”,但由于含有特殊符号“;”,仍会被IIS当做asp程序执行。



test.jpg/.php一看到URL中文件后缀是.php,便无论该文件是否存在,都直接交给php处理,而php又默认开启“cgi.fix_pathinfo”,会对文件路径进行“修理”,何谓“修理”?
举个例子,当php遇到文件路径“/aaa.xxx/bbb.yyy”时,若“/aaa.xxx/bbb.yyy”不存在,则会去掉最后的“bbb.yyy”,然后判断“/aaa.xxx”是否存在,若存在,则把"/aaa.xxx”当做文件。
若有文件test.jpg,访问时在其后加/.php,便可以让IIS把“test.jpg/.php”交给php , php“修理”文件路径 “test.jpg/.php” 得到“test.jpg”,该文件存在,便把该文件作为php程序执行了。
下图所示,是在IS7.5+php5.3+FastCGl下的测试情况:

本文部分图片摘自深信服安全服务认证工程师课程课件中,为方便个人学习使用,勿作商用!!!!文字内容为自己手打,并非直接搬运!如有侵权,请联系删除!!!
本文档所提供的信息仅用于教育目的及在获得明确授权的情况下进行渗透测试。任何未经授权使用本文档中技术信息的行为都是严格禁止的,并可能违反《中华人民共和国网络安全法》及相关法律法规。使用者应当合法合规地运用所学知识,不得用于非法入侵、破坏信息系统等恶意活动。我们强烈建议所有读者遵守当地法律与道德规范,在合法范围内探索信息技术。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。