什么是Web中间件
是一类提供系统软件和应用软件之间的连接,便于软件各部件之间的沟通的软件,应用软件可以借助中间件在不同的技术架构之间共享信息和资源。中间件位于客户机服务器的操作系统之上,管理着计算资源和网络通信。中间件=平台+通信
一、IIS中间件
1、IIS6.0 PUT漏洞
漏洞原理:
IIS6.0 sever在web服务扩展中开启了WebDAV。WebDAV是在一中HTTP1.1的扩展协议。它扩展了HTTP1.1,在GET、POST、HEAD等几个http标准方法以外添加了一些新的方法,如PUT,使应用程序可对Web Server直接读写,并支持写文件锁定(Locking)及解锁(Unlock),还可以支持文件的版本控制。可以像在操作本地文件夹一样操作服务器上的文件夹,该扩展也存在缺陷,利用PUT方法可直接向服务器上传恶意文件,控制服务器。导致任意文件上传
修复建议:
关闭WebDAV服务和写入权限
2、短文件名猜解
漏洞原理:
为了兼容16位MS-DOS程序,Windows为文件名较长的文件(和文件夹)生成了对应的Windows8.3短文件名。IIS6.0处理PROPFIND指令的时候,由于对url的长度没有进行有效的长度控制和检查,导致执行memcpy对虚拟路径进行构造的时候,引发栈溢出,从而导致远程代码执行。
修复建议:
关闭WebDAV服务;使用相关的防护设备
3、解析漏洞
漏洞原理
IIS 6.0在处理含有特殊符号的文件路径时会出现逻辑错误,从而造成文件解析漏洞。
二、Apache中间件
Apache 是世界使用排名第一的Web 服务器软件。它可以运行在几乎所有广泛使用的 计算机平台上,由于其 跨平台 和安全性被广泛使用,是最流行的Web服务器端软件之一。它快速、可靠并且可通过简单的API扩充,将 Perl/ Python等 解释器编译到服务器中。
1、多后缀名解析漏洞
漏洞原理:
Apache默认一个文件可以有多个以.
分割的后缀,当右边的后缀名无法识别,则继续向左识别;因此可以用于文件上传来绕过黑名单导致getshell
修复建议:
方案一:httpd.conf或httpd-vhosts.conf中加入以下语句,从而禁止文件名格式为.php.的访问权限
<FilesMatch ".(php.|php3.|php4.|php5.)">
Order Deny,Allow
Deny from all
</FilesMatch>
方案二:需要保留文件名,可以修改程序源代码,替换上传文件名中的“.”为“_”:
eg
:$filename = str_replace('.', '_', $filename);
2、目录遍历
漏洞原理:
Apache HTTP Server 2.4.49版本中使用的ap_normalize_pat函数在对路径参数进行规范化时会先进行url解码,然后判断是否存在../的路径穿越符,当检测到路径中存在%字符时,如果紧跟的2个字符是十六进制字符,就会进行url解码,将其转换成标准字符,如%2e->.,转换完成后会判断是否存在…/。
如果路径中存在%2e./形式,就会检测到,但是出现.%2e/这种形式时,就不会检测到,原因是在遍历到第一个.字符时,此时检测到后面的两个字符是%2而不是./,就不会把它当作路径穿越符处理,因此可以使用.%2e/或者%2e%2e绕过对路径穿越符的检测。
三、Nginx中间件
Nginx是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。其将源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名。
Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在BSD-like 协议下发行。其特点是占有内存少,并发能力强,nginx的并发能力在同类型的网页服务器中表现较好
1、解析漏洞
漏洞原理:
对任意文件名,在后面添加/任意文件名.php的解析漏洞,比如原本文件名是test.jpg,可以添加test.jpg/x.php进行解析攻击
修复建议:
1、将php.ini文件中的cgi.fix_pathinfo的值设为0.这样php在解析1.php/1.jpg这样的目录时,只要1.jpg不存在就会显示404;
2、将/etc/php5/fpm/pool.d/www.conf中security.limit_ectensions后面的值设为.php。
2、目录遍历
漏洞原理:
Nginx 的目录遍历与 Apache 一样,属于配置方面的问题,错误的配置可到导致目录遍历与源码泄露。
修复建议:
将
/etc/nginx/sites-avaliable/default
里的autoindex on
改为autoindex off
.
3、CRLF注入
漏洞原理:
CRLF是“回车+换行”的简称(\r\n),HTTPHeader与HTTPBody时用两个CRLF来分隔的,浏览器根据两个CRLF来取出HTTP内容并显示出来,通过控制HTTP头中的字符,注入恶意换行,就能注入一些会话cookie或者html代码,由于Nginx配置不正确,导致注入的代码会被执行。
修复建议:
Nginx的配置文件
/etc/nginx/conf.d/error1.conf
修改为使用不解码的url跳转.
4、目录穿越
漏洞原理:
Nginx反向代理,静态文件存储在/home/
下,而访问时需要在url中输入files,配置文件中/files没有用/闭合,导致可以穿越至上层目录
修复建议:
Nginx配置文件
/etc/nginx/conf.d/error2.conf
的/files使用/闭合.
四、Tomcat中间件
Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。由于有了Sun 的参与和支持,最新的Servlet 和JSP 规范总是能在Tomcat 中得到体现。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。
1、远程代码执行
漏洞原理:
Tomcat运行在Windows主机上,且启用了 HTTP PUT请求方法,可通过构造的攻击请求向服务器上传包含任意代码JSP文件,造成任意代码执行,受影响版本:Apache Tomcat 7.0.0 – 7.0.81
修复建议:
1.检测当前版本是否在影响范围内,并禁用PUT方法;
2.更新并升级至最新版.
2、war后门文件部署
漏洞原理:
Tomcat支持在后台部署war文件,可以直接将webshell部署到web目录下,若后台管理页面存在弱口令,则可以通过爆破获取密码
修复建议:
- 在系统上以低权限运行Tomcat应用程序。创建一个专门的Tomcat服务用户,该用户只能拥有一组最小权限,例如不允许远程登录;
- 增加对于本地和基于证书的身份验证,部署账户锁定机制,对于集中式认证,目录服务也要做相应配置,在
CATALINA_HOME/conf/web.xml
文件设置锁定机制和时间超时限制;- 以及针对
manager-gui/manager-status/manager-script
等目录页面设置最小权限访问限制;- 后台管理避免弱口令.
五、jBoss中间件
1、反序列化漏洞
漏洞原理:
Java序列化,简而言之就是把java对象转化为字节序列的过程。而反序列话则是再把字节序列恢复为java对象的过程,然而就在这一转一变得过程中,程序员的过滤不严格,就可以导致恶意构造的代码的实现
修复建议:
- 不需要
http-invoker.sar
组件的用户可直接删除此组件;- 用于对
httpinvoker
组件进行访问控制.
2、war后门文件部署
jBoss后台管理页面存在弱口令,登录后台上传war包
六、WebLogic中间件
WebLogic是Oracle公司出品的一个application server,确切的说是一个基于JAVAEE架构的中间件
WebLogic是用于开发、集成、部署和管理大型分布式Web应用、网络应用和数据库应用的Java应用服务器,将Java的动态功能和Java Enterprise标准的安全性引入大型网络应用的开发、集成、部署和管理之中
1、反序列化漏洞
漏洞原理:
Java序列化,简而言之就是把java对象转化为字节序列的过程。而反序列话则是再把字节序列恢复为java对象的过程,然而就在这一转一变得过程中,程序员的过滤不严格,就可以导致恶意构造的代码的实现
修复建议:
- 升级补丁
- 对访问
wls-wsat
资源进行访问控制
2、SSRF
漏洞原理:
Weblogic/uddiexplorer/SearchPublicRegistries.jsp
中存在一个SSRF漏洞,利用该漏洞可以发送任意HTTP请求,进而攻击内网中redis、fastcgi等脆弱组件
修复建议:
- 将SearchPublicRegistries.jsp直接删除;
- 删除uddiexplorer文件夹、限制uddiexplorer应用只能内网访问;
- 将weblogic安装目录
wlserver_10.3/server/lib/uddiexplorer.war
做好备份、将weblogic安装目录下的server/lib/uddiexplorer.war
下载、用winrar等工具打开uddiexplorer.war
、将其下的SearchPublicRegistries.jsp
重命名为SearchPublicRegistries.jspx
、保存后上传回服务端替换原先的uddiexplorer.war
、对于多台主机组成的集群,针对每台主机都要做这样的操作、由于每个server的tmp目录下都有缓存所以修改后要彻底重启weblogic(即停应用–停server–停控制台–启控制台–启server–启应用).
3、任意文件上传
漏洞原理:
Weblogic管理端未授权的两个页面存在任意文件上传漏洞,进而获取服务器权限,访问ws_utc/config.do
,设置Work Home Dir
为ws_utc
应用的静态文件css目录,访问这个目录是无需权限的(如果能改的话)
修复建议:
- 升级补丁
- 进入Weblogic Server管理控制台,domain设置中,启用”生产模式”.
4、war后台文件部署
漏洞原理:
由于WebLogic后台存在弱口令,可直接登陆后台上传包含后门的war包
修复建议:
防火墙设置端口过滤,也可以设置只允许访问后台的IP列表,避免后台弱口令.