web容器是一种服务程序,服务器一个端口就有一个提供相应服务的程序,java中的TOMCAT,ASP中的IIS都是这样的容器。一个服务器可以有多个容器
常见web容器:
IIS,Apache,Nginx,Tomcat,Jboss,Web Logic
名词解释
中间件:提供系统软件和应用软件之间连接的软件,以便于软件之间的沟通。中间件存储与操作系统和更高一级的应用程序之间。
容器:给处于其中的应用程序组件(JSP、PHP、ASP)提供一个环境,使其中的应用程序组件直接跟容器中的环境变量接口交互,不必关注其它系统问题。
ps:有时候中间件和容器是通用的,即一个软件既有中间件的作用也作为容器使用
服务器:www服务器或http服务器,即向浏览器提供服务的程序
什么是IIS?
全称是互联网信息服务(Internet Information Services),由微软公司提供的基于microsoft windows 的互联网基本服务。IIS包括FTP/FTPS、NNTP、https/http、smtp等服务。
.net framework是基础类库,是程序运行的基本框架
ASP.net 是.net用于做网站的技术集合。
IIs是假设Web服务器用来提供网页浏览服务的,属于系统环境。
一般用ASP.net开发软件,然后靠IIS对公网提供服务,软件底层是.net framework
什么是文件解析?
服务器收到一个http请求, IIS首先决定如何处理这个请求,IIS依据什么来处理呢?依据文件的后缀名。
服务器获取所请求的页面的后缀面,接下来在服务器端寻找处理这类后缀名的应用程序,若是找不到可以处理此类文件的应用程序,IIS直接把这个文件返还给客户端
复现一下IIS6.0文件解析漏洞
首先开启IIS服务,在管理工具中打开Internet 信息服务(IIS)管理器
打开如下目录 中部上方三个按钮代表服务的开启暂停与中止
可以通过访问192.168.237.157/iisstart.asp来测试服务是否打开
文件解析漏洞一般用于各种上传漏洞中,在文件上传的地方一般会限制用户可以上传文件的后缀名。
在实际漏洞环境中,IIS一般与asp相搭配,上传的地方如果限制了.asp后缀名,那么首先想到的应该是使用其他IIS支持的文件后缀,IIS解析asp脚本除了.asp后缀还有.cer和.asa
若网站讲asp、cer、asa都过滤了,就只能采用其他方式绕过了,就比如文件解析漏洞。
IIS6.0在处理含有特殊符号的文件路径时会出现逻辑错误,从而早曾文件解析漏洞。这一漏洞有两种完全不同的利用方式:
1、新建一个test.asp的目录,该目录下任何文件都会被IIS当成asp执行
2、上传一个名为“test.asp;jpg”文件,虽然真正后缀名是jpg,但因为有;号,该文件还是会被当成asp程序执行
ps:升级IIS版本可解决
Apache文件解析漏洞与用户配置有密切关系
严格来说,这就是用户配置的问题。这里要讲配置出错的原因以及修复方法,所以需要自备环境。
使用ubuntu的docker,然后运行以下命令:
apt-get install apache2
apt-get install php7.0
apt-get install libapache2-mod-php7.0
使用docker ps查看ubuntu中的docker id,找到apachephp的dockerid
使用docker run -it -d -p 80:80 dockerid启动容器
docker ps查看容器是否启动
docker exec -it dockerid bash 设置容器环境
使用上述三条命令配置容器环境
配置好环境后,启动apache 服务
service apache2 start
然后访问容器ip,出现apache页面标识服务正常开启
apache 和 php 三种结合方法
CGI
FastCGI
Module
查看Apache和php的结合方法:
/usr/sbin/apachectl -M | grep php