首页 > 其他分享 >WEB中间件常见漏洞总结

WEB中间件常见漏洞总结

时间:2023-05-08 13:55:05浏览次数:34  
标签:WEB 文件 中间件 war 漏洞 Apache 目录

WEB中间件常见漏洞总结

什么是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目录下,若后台管理页面存在弱口令,则可以通过爆破获取密码

修复
  • 1.在系统上以低权限运行Tomcat应用程序。创建一个专门的Tomcat服务用户,该用户只能拥有一组最小权限,例如不允许远程登录;

  • 2.增加对于本地和基于证书的身份验证,部署账户锁定机制,对于集中式认证,目录服务也要做相应配置,在CATALINA_HOME/conf/web.xml文件设置锁定机制和时间超时限制;

  • 3.以及针对manager-gui/manager-status/manager-script等目录页面设置最小权限访问限制;

  • 4.后台管理避免弱口令.

五、jBoss中间件

1、反序列化漏洞

漏洞原理

Java序列化,简而言之就是把java对象转化为字节序列的过程。而反序列话则是再把字节序列恢复为java对象的过程,然而就在这一转一变得过程中,程序员的过滤不严格,就可以导致恶意构造的代码的实现

修复
  • 1.不需要http-invoker.sar 组件的用户可直接删除此组件;

  • 2.用于对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等脆弱组件

修复
  • 1.将SearchPublicRegistries.jsp直接删除;

  • 2.删除uddiexplorer文件夹、限制uddiexplorer应用只能内网访问;

  • 3.将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 Dirws_utc应用的静态文件css目录,访问这个目录是无需权限的(如果能改的话)

修复
  • 升级补丁

  • 进入Weblogic Server管理控制台,domain设置中,启用”生产模式”.

4、war后台文件部署

漏洞原理

由于WebLogic后台存在弱口令,可直接登陆后台上传包含后门的war包

修复

防火墙设置端口过滤,也可以设置只允许访问后台的IP列表,避免后台弱口令.

标签:WEB,文件,中间件,war,漏洞,Apache,目录
From: https://www.cnblogs.com/Belik0e/p/17381517.html

相关文章

  • 一文深入了解CSRF漏洞
    1.1.定义跨站请求伪造(英语:Cross-siterequestforgery),也被称为one-clickattack或者sessionriding,通常缩写为CSRF或者XSRF,是一种挟制用户在当前已登录的Web应用程序上执行非本意的操作的攻击方法。跟跨站脚本(XSS)相比,XSS利用的是用户对指定网站的信任,CSRF利用的是网站......
  • uniapp app端内嵌webview对接支付宝支付
    //app支付constappRequestPayment=(orderInfo:string)=>{uni.navigateTo({url:'跳转的路径?one='+encodeURIComponent(JSON.stringify(orderInfo))})}ViewCode<viewclass="page"><web-view:src="state.navU......
  • 武装你的WEBAPI-OData与DTO
    本文属于OData系列文章Intro前面写了很多有关OData使用的文章,很多读者会有疑问,直接将实体对象暴露给最终用户会不会有风险?$expand在默认配置的情况下,数据会不会有泄露风险?答案是肯定的,由于OData的特性,提供给我们便捷同时也会带来一些风险。很多地方推荐使用DTO模式来隔离实体类......
  • Go Web 基础--原理总结
    Web的工作方式对于普通的上网过程:浏览器本身是一个客户端,当你输入URL的时候,首先浏览器会去请求DNS服务器,通过DNS获取相应的域名对应的IP,然后通过IP地址找到IP对应的服务器后,要求建立TCP连接,等浏览器发送完HTTPRequest(请求)包后,服务器接收到请求包之后才开始处理......
  • Springboot 自定义Web容器
    Springboot自定义Web容器如果你的项目并发量比较高,想要修改最大线程数、最大连接数等配置信息,可以通过自定义Web容器的方式,代码如下所示。@SpringBootApplication(proxyBeanMethods=false)publicclassAppimplementsWebServerFactoryCustomizer<ConfigurableServletWebSer......
  • NET 6中的自托管Web API
    原文:NET6中的自托管WebAPI-我爱学习网(5axxw.com)我需要向现有库中添加一个非常简单的WebAPI,以便Python可以与应用程序通信。简单的请求/JSON响应。这比最初想象的更具挑战性。我习惯了NodeJ,在那里像Express这样的库只需几行代码就可以做到这一点。显然,web服务器需要集......
  • Django操作session和中间件以及csrf跨站服务
    Django操作session#cookie保存在浏览器,数据不安全session可以将用户信息保存在服务端,基于cookie工作的1.用户信息认证2.生成随机字符串3.随机字符串和用户信息绑定一起,保存,默认在mysql4.把随机字符串返回到浏览器,将其保存,再次访问直接带其一起传输至服务端,服务端用其进......
  • Weblogic11g安装部署-winserver篇
    目录一、安装weblogic11g1.1找到下载好的weblogic11g1.2打开安装程序wls1033_oepe111150_win32.exe,并完成初始化如下图1.3点击下一步并选择安装路径,这里选择d:\bea11g1.4把“我希望通过MyOracleSupport接收安全更新”方框前的勾去掉,其他选择默认安装即可1.5直到出现如下界面,......
  • 黑马 2-javaweb 学习随记
    day08 1:启动tomcat失败121-Oct-202213:41:57.148严重[main]org.apache.catalina.util.LifecycleBase.handleSubClassException初始化组件[Connector[HTTP/1.1-8080]]失败。2org.apache.catalina.LifecycleException:协议处理程序初始化失败3......
  • 【web 开发基础】PHP 中数组的定义和使用
    前言在PHP中定义数组非常灵活。与其他许多编程语言中的数组不同,PHP不需要在创建数组时指定数组的大小和类型,甚至无需再使用数组前先行声明,也可以在同一个数组中存储任何类型的数据,PHP支持一维和多维数组,可以由用户创建,也可以由一些特定的数据库处理函数从数据库查询中生成数组,或者......