Apache Tomcat AJP协议漏洞如何导致文件读取与包含?

Apache Tomcat AJP协议文件读取与包含漏洞

Apache Tomcat作为广泛使用的开源Java Web应用服务器,其AJP(Apache JServ Protocol)协议在反向代理场景中扮演着重要角色,AJP协议的设计缺陷曾导致严重的文件读取与包含漏洞(CVE-2020-1938、CVE-2020-35489等),攻击者可利用该漏洞读取服务器敏感文件甚至执行任意代码,本文将从漏洞原理、影响范围、复现方式及防御措施等方面展开分析。

Apache Tomcat AJP协议漏洞如何导致文件读取与包含?

AJP协议与漏洞背景

AJP协议是Tomcat与Web服务器(如Apache HTTP Server、Nginx)之间的高性能通信协议,基于二进制格式设计,支持长连接和请求复用,常用于负载均衡和静态资源分离场景,协议通过ajp13实现,允许Web服务器将HTTP请求转发至Tomcat处理。

漏洞的核心问题在于AJP协议对请求参数的校验不足,当Tomcat开启了AJP连接器(默认端口8009)且未正确配置secret属性时,攻击者可通过构造特殊的AJP请求,绕过Tomcat的访问控制,读取Web应用目录外的敏感文件(如WEB-INF配置文件、系统配置等),或在特定条件下实现远程代码执行。

漏洞原理与利用方式

文件读取漏洞(CVE-2020-1938)

  • 漏洞触发条件:

    • Tomcat版本:9.0.x < 9.0.31,8.5.x < 8.5.51,7.0.x < 7.0.100。
    • AJP连接器已启用且未配置secret。
    • 支持AJP协议的反向代理(如mod_jk、mod_proxy_ajp)将流量转发至Tomcat。
  • 利用原理:
    攻击者通过AJP协议发送包含javax.servlet.include.request_uri等恶意头部的请求,Tomcat在处理时会将请求参数与内部路径拼接,导致目录穿越,构造请求:

    GET /xxx HTTP/1.1  
    Host: target  
    Accept: */*  
    X-Forwarded-For: 127.0.0.1  
    Referer: http://xxx  
    Proxy-Connection: Keep-Alive  
    Content-Type: application/x-www-form-urlencoded  
    X-Forwarded-Host: 127.0.0.1  
    X-Forwarded-Server: 127.0.0.1  
    Content-Length: 0  

    结合工具(如ysoserial)或直接请求/index.jsp,可读取WEB-INF/web.xml、/etc/passwd等文件。

    Apache Tomcat AJP协议漏洞如何导致文件读取与包含?

远程代码执行漏洞(CVE-2020-35489)

  • 触发条件:

    • Tomcat版本:9.0.x < 9.0.36,8.5.x < 8.5.63,7.0.x < 7.0.93。
    • 存在可上传恶意文件(如JSP)的Web应用。
  • 利用链:
    攻击者先通过文件读取漏洞获取Session或Context信息,再结合包含漏洞(如include指令)加载恶意JSP文件,最终导致代码执行。

    <%@ include file="file:///etc/passwd" %>  

    若服务器存在文件上传功能,可上传Webshell并通过AJP协议触发执行。

漏洞影响范围

影响范围 具体场景
敏感信息泄露 读取WEB-INF/web.xml(数据库配置)、/etc/passwd(系统用户)、.ssh目录等。
服务器权限获取 结合漏洞读取配置文件,进一步获取系统权限或横向移动。
业务中断 攻击者可篡改页面或植入恶意代码,导致服务不可用或用户数据泄露。

漏洞复现步骤(以文件读取为例)

  1. 环境准备:

    • 部署受影响版本的Tomcat(如9.0.30),启用AJP连接器(server.xml中配置<Connector port="8009" protocol="AJP/1.3" />)。
    • 使用mod_proxy_ajp将Apache请求转发至Tomcat。
  2. 工具利用:
    使用ysoserial或Ceye平台构造Payload,通过curl发送AJP请求:

    Apache Tomcat AJP协议漏洞如何导致文件读取与包含?

    curl -H "X-Forwarded-Host: 127.0.0.1" -H "X-Forwarded-For: 127.0.0.1" "http://target:8009/"  

    观察响应中是否包含/etc/passwd内容。

  3. 验证结果:
    若返回文件内容,则漏洞存在;若返回404或权限错误,则可能未受影响。

防御与修复措施

官方补丁升级

  • Tomcat版本升级:
    • 0.x升级至9.0.31+,8.5.x升级至8.5.51+,7.0.x升级至7.0.100+。
    • 下载地址:Apache Tomcat官网。

配置加固

  • 禁用AJP连接器:若无需AJP协议,在server.xml中注释或删除AJP Connector配置。
    <!-- <Connector port="8009" protocol="AJP/1.3" /> -->  
  • 启用secret属性:若必须使用AJP,配置secret参数(需与Web服务器一致):
    <Connector port="8009" protocol="AJP/1.3" secret="yourSecretKey" />  

网络与访问控制

  • 防火墙限制:仅允许可信IP访问AJP端口(8009)。
  • 反向代理配置:在Web服务器层(如Nginx)禁用不必要的AJP转发,或使用mod_security过滤恶意请求。

安全审计与监控

  • 定期扫描:使用Nuclei、AWVS等工具检测AJP端口是否存在漏洞。
  • 日志分析:监控Tomcat访问日志,关注异常路径(如/WEB-INF/、/etc/)。

Apache Tomcat AJP协议漏洞的本质是协议层面对路径遍历和文件包含的校验缺失,随着Tomcat官方版本的迭代,高危漏洞已逐步修复,但未升级或配置不当的系统仍面临风险,建议用户及时更新版本,严格限制AJP协议的访问范围,并结合网络层防护措施,构建多层次安全体系,对于企业级应用,还需定期开展渗透测试和代码审计,从源头避免类似漏洞的引入。

图片来源于AI模型,如侵权请联系管理员。作者:酷小编,如若转载,请注明出处:https://www.kufanyun.com/ask/16465.html

赞 (0)
上一篇 2025年10月20日 03:26
下一篇 2025年10月20日 03:31

相关推荐

  • 服务器解析不成功怎么办?排查步骤与解决方法

    网络服务中的关键环节与技术挑战在互联网技术架构中,服务器解析是连接用户请求与实际服务资源的核心环节,无论是访问网站、发送邮件还是使用云服务,服务器解析的效率与准确性直接影响用户体验和系统稳定性,在实际应用中,“服务器解析不”的问题时常出现,表现为域名无法解析、请求超时、资源加载失败等现象,这一问题涉及网络协议……

    2025年12月2日
    04320
  • 服务器遭受攻击后,有哪些高效解决策略和预防措施?

    服务器被攻击时,如何迅速有效地解决这一问题,是每个网站管理员和IT专业人员都需要面对的挑战,以下是一份详细的解决方案,旨在帮助您应对服务器攻击,确定攻击类型在采取任何行动之前,首先需要确定攻击的类型,以下是一些常见的攻击类型:DDoS攻击:分布式拒绝服务攻击,通过大量流量使服务器瘫痪,SQL注入:攻击者通过在数……

    2025年11月29日
    04970
  • 服务器每秒并发计算能力多少才算高性能?

    现代数字世界的核心引擎在数字化浪潮席卷全球的今天,服务器每秒并发计算能力已成为衡量一个系统处理效率、承载能力和用户体验的关键指标,从社交媒体的高峰访问、电商平台的秒杀活动,到金融交易的安全验证、人工智能的实时推理,背后都离不开服务器强大的并发计算支撑,本文将深入探讨服务器每秒并发计算的概念、实现机制、优化策略及……

    2025年12月16日
    04240
    • 服务器间歇性无响应是什么原因?如何排查解决?

      根源分析、排查逻辑与解决方案服务器间歇性无响应是IT运维中常见的复杂问题,指服务器在特定场景下(如高并发时段、特定操作触发时)出现短暂无响应、延迟或服务中断,而非持续性的宕机,这类问题对业务连续性、用户体验和系统稳定性构成直接威胁,需结合多维度因素深入排查与解决,常见原因分析:从硬件到软件的多维溯源服务器间歇性……

      2026年1月10日
      020
  • 昆明游戏服务器,为何成为玩家热议的焦点?

    游戏服务器的绿色天堂昆明概况昆明,云南省省会,地处中国西南部,拥有得天独厚的地理环境和丰富的自然资源,作为我国重要的旅游城市,昆明以其秀美的自然风光、悠久的历史文化和独特的民族风情吸引了众多游客,近年来,随着互联网的快速发展,昆明也成为了游戏服务器的绿色天堂,昆明游戏服务器优势优越的地理位置昆明地处我国西南地区……

    2025年11月14日
    04190

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注