当前位置: 首页 > 科技观察

Tomcat中的Web中间件漏洞

时间:2023-03-17 18:17:21 科技观察

1.Tomcat简介Tomcat服务器是一个免费开源的Web应用服务器,是一个轻量级的应用服务器,广泛应用于中小型系统和并发访问用户不多的场合。Using是开发调试JSP程序的不错选择。对于初学者来说,可以认为在一台机器上配置Apache服务器后,可以用来响应HTML(标准通用标记语言下的一种应用程序)页面的访问请求。Tomcat其实是Apache服务器的一个扩展,但是它在运行时是独立运行的,所以在运行tomcat的时候,它实际上是作为一个独立于Apache的进程运行的。2、远程代码执行漏洞及成因介绍Tomcat运行在Windows主机上,启用了HTTPPUT请求方式。可以通过构造请求将包含任意代码的JSP文件上传到服务器,从而导致任意代码执行。受影响版本:ApacheTomcat7.0.0–7.0.81漏洞重现配置漏洞,启用put方法上传文件功能在tomcat文件夹/conf/web.xml文件中插入readonlyfalse并重启tomcat服务访问127.0.0.1:8080,burp抓包,发送到Repeater,请求方式改为PUT,创建一个122.jsp,使用%20转义空格字符。123.jsp的内容为:<%Runtime.getRuntime().exec(request.getParameter("cmd"));%>返回201,表示创建成功。访问127.0.0.1:8080/122.jsp?cmd=calc弹出计算1)检测当前版本是否在影响范围内,禁用PUT方法。2)更新升级到新版本。3、后台弱口令war包部署漏洞介绍及成因Tomcat支持后台部署war文件,可以直接将webshel??l部署到web目录。如果后台管理页面存在弱密码,可以通过爆破获取密码。漏洞复现Tomcat安装目录下conf中的tomcat-users.xml配置如下访问后台,登录并上传一个war包,其中包含成功上传解析的jsp后门,打开可执行系统命令并执行文件管理,随意查看和删除,上传文件漏洞修复1)在系统上以低权限运行Tomcat应用程序。创建一个专用的Tomcat服务用户,该用户只能拥有最少的权限集(例如不允许远程登录)。2)对于本地和基于证书的认证,部署帐户锁定机制(对于集中认证,目录服务也应相应配置)。在CATALINA_HOME/conf/web.xml文件中设置锁定机制和超时限制。3)并对manager-gui/manager-status/manager-script等目录页面设置最小权限访问限制。4)后台管理避免弱密码。4.反序列化漏洞漏洞介绍及成因该漏洞与Oracle此前发布的mxRemoteLifecycleListener反序列化漏洞(CVE-2016-3427)相关,是利用JmxRemoteLifecycleListener的监听功能造成的。但在Oracle官方发布修复后,Tomcat未能及时修复更新,导致远程代码执行。该漏洞产生的根本原因是Tomcat在配置JMX监控时使用了JmxRemoteLifecycleListener方法。受漏洞影响的版本:ApacheTomcat9.0.0.M1至9.0.0.M11ApacheTomcat8.5.0至8.5.6ApacheTomcat8.0.0.RC1至8.0.38ApacheTomcat7.0.0至7.0.72ApacheTomcat6.0.0至6.0.47漏洞复现及利用条件:需要对外开放JmxRemoteLifecycleListener监听的10001和10002端口,实现远程代码执行。在conf/server.xml的第30行配置端口开启JmxRemoteLifecycleListener函数监听:配置jmx端口后,在tomcat版本对应的extras/目录下下载catalina-jmx-remote.jar和groovy-2.3.9.jar两个jar包。下载完成后,放在lib目录下。然后进入bin目录修改catalina.bat脚本。在ExecuteTheRequestedCommand注释之前添加此行。重启tomcat,监控本地RMI服务端口10001和10002是否运行成功。构建payload,成功弹出计算器。Bug修复1.禁用JmxRemoteLifecycleListener功能,或者对jmxJmxRemoteLifecycleListener远程端口进行网络访问控制。同时,增加了严格的认证方式。2.根据官方版本升级更新对应版本。