解决AJP漏洞操作记录

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情

前言

最近Tomcat爆出AJP漏洞,升级对应版本的Tomcat是比较好的规避方法。本文将记录笔者在升级Tomcat 9.0.31时踩过的一些坑,以便大家能快速升级Tomcat。

本文只针对Tomcat 9.0.31版本的操作记录。

Tomcat受影响版本:

Apache Tomcat 9.x < 9.0.31
Apache Tomcat 8.x < 8.5.51
Apache Tomcat 7.x < 7.0.100
Apache Tomcat 6.x

如果未使用AJP端口,或者Tomcat版本不在上面的范围内可以不考虑升级。

准备工具

Tomcat 9下载地址:https://tomcat.apache.org/dow...
检测漏洞工具下载链接:https://www.chaitin.cn/zh/gho...

相关链接

Tomcat 9 更新日志:https://tomcat.apache.org/tom...
Tomcat 9.0.31 AJP 相关API:https://tomcat.apache.org/tom...

Use of the AJP protocol requires additional security considerations because it allows greater direct manipulation of Tomcat's internal data structures than the HTTP connectors. Particular attention should be paid to the values used for the address , secret , secretRequired and allowedRequestAttributesPattern attributes.

API中提到的这四个属性比较重要
address , secret , secretRequired and allowedRequestAttributesPattern

操作记录

1. 部署Tomcat

首先解压/安装 Tomcat 9.0.31,直接运行是不会有问题,开启注释的AJP端口后就会启动失败。

<Connector protocol="AJP/1.3" address="::1" port="8009" redirectPort="8443" />

启动Tomcat就会有如下错误:

严重: Failed to start component [Connector[AJP/1.3-8009]]
org.apache.catalina.LifecycleException: 协议处理器启动失败
at org.apache.catalina.connector.Connector.startInternal(Connector.java:1038)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
at org.apache.catalina.core.StandardService.startInternal(StandardService.java:438)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:930)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
at org.apache.catalina.startup.Catalina.start(Catalina.java:633)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:343)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:474)
Caused by: java.lang.IllegalArgumentException: The AJP Connector is configured with secretRequired="true" but the secret attribute is either null or "". This combination is not valid.
at org.apache.coyote.ajp.AbstractAjpProtocol.start(AbstractAjpProtocol.java:264)
at org.apache.catalina.connector.Connector.startInternal(Connector.java:1035)
... 12 more`

根据错误提示,需要添加 secretRequiredsecret 属性,如果 设置 secretRequired="" 则可以不用添加 secret 属性,配置正确之后即可正常启动。

2. 运行检测工具

直接运行检测工具可查看相关命令,这里我们根据长亭的官方教程使用 servicescan --target ip:端口命令。

.\xray_windows_amd64.exe servicescan --target 127.0.0.1:8009

QQ图片20200225213015.png

以Windows系统为例,使用命令行运行 xray_windows_amd64.exe
此时我的AJP配置如下:

    <Connector protocol="AJP/1.3" port="8009" redirectPort="8443" secretRequired=""/>

注:address="IP地址 部分情况需要添加 address 属性,否则使用 Apache 代理访问时可能会出现 503,比如电脑存在双网卡等。

运行结果:
QQ截图20200225214309.png

如果出现[EEOR]则说明命令不正确。
此处为错误截图:
error.png

下图为存在AJP漏洞的检测结果:
漏洞.png

3. 完善配置

长亭科技 推荐配置
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" address="YOUR\_TOMCAT\_IP\_ADDRESS" secret="YOUR\_TOMCAT\_AJP\_SECRET" />

如果我们配置了 secret 属性,使用 Apache 代理访问服务就会出现403的情况,这个时候我们就需要在 Apacheworkers.properties 文件中配置 secret 值 。
例如 worker.xxx.secret = secret_value ,注意两边的值需要保持一致。
配置完后重启 Apache 服务即可正常访问。

再使用检测工具检测

检测结果如下:
403.png
此时检测结果状态码都是 403 ,同时 Apache 也能正常访问系统。

结尾:

如果通过 startup.bat 启动Tomcat出现乱码情况,只需要设置 conf 目录下 logging.properties 文件 java.util.logging.ConsoleHandler.encoding = UTF-8GBK 编码即可。
以上就是笔者升级Tomcat 9.0.31所遇到的问题,特记录于此希望对大家有所帮助。
转载链接:https://segmentfault.com/a/1190000021838764?utm_source=tag-newest

CVE-2020-1938 CVE-2020-1938漏洞复现 阅读详情

相关推荐

漏洞笔录--ajp1.3文件读取

有时候会看到fofa收录了站点开启8009,我们都会想到ajp1.3这个洞。。 现在的防护越来越严了,估计也全网封杀了 本地复现 步骤没那么讲究,,这里用poc来打,, 可以看到,是可以读取 AJP漏洞的鸡肋 1只能读这个目录,不能文件包含 读取webapp的目录;包括备份都是500;另外文件夹权限为只读, ...

qq_29437513的博客 547

AJP及CSRF漏洞描述及处理方案

Apache JServ协议(AJP)是一种二进制协议,可以将来自Web服务器的入站请求代理到 位于Web服务器后面的应用程序服务器。不建议在互联网上公开使用AJP服务。 如果AJP配置错误,可能会允许攻击者访问内部资源。

Tomcat AJP协议漏洞CVE-2020-1938复现与防御指南

AJP协议是Tomcat与前端Web服务器间的高性能二进制通信协议,常用于提升应用性能。其核心原理是通过优化数据传输格式,减少HTTP协议开销,实现高效的请求转发。然而,协议实现中的安全缺陷可能导致严重风险,CVE-2020-1938漏洞正是由于Tomcat在处理AJP请求时,对javax.servlet.include.*属性缺乏有效路径校验,使得攻击者可构造恶意请求实现目录穿越,读取Web应用目录外的任意文件。该漏洞的技术价值在于揭示了内部协议安全的重要性,尤其在云原生和容器化部署场景中,默认配置可能暴

weixin_34212762的博客 301

Tomcat的AJP漏洞的补救措施

背景 tomcat是较为常用的web服务器,近日公司发布了Tomcat中间件漏洞的整改通知,来进行对tomcat的AJP漏洞的补救,下面讲述对于tomcat的两种补救措施。 漏洞详情 国家信息安全漏洞共享平台于2月22日发布了一份关于Apache Tomcat存在文件包含漏洞的安全报告。该漏洞综合评级为“高危”,影响的产品版本包括:Tomcat6、Tomcat7、Tomcat8、Tomca...

oschina_40527634的博客 4905

CVE-2020-1938(apache tomcat AJP漏洞)漏洞复现

nmap 扫描目标主机 发现tomcat开放了8009 ajp13端口 利用现有EXP进行读取: 1、在服务器 /usr/local/tomcat/apache-tomcat-8.5.32/webapps/ROOT目录下创建一个测试实例 test.txt 内容为:AAAAAAAAAAAAAAAA 2、在攻击机上运行EXP 读取 WEB-INF/web.xml 配置信息 影响版本范围 Ap...

初学者L_言的博客 1744

未授权访问漏洞测试方法及修复方案

1、漏洞描述 未授权访问漏洞,是在攻击者没有获取到登录权限或未授权的情况下,不需要输入密码,即可通过输入网站控制台主页面地址或者不允许查看的连接便可进行访问,同时进行操作。 2、漏洞检测 通过抓包工具(burpsuite、fiddler等),将抓取到的功能链接,在其他浏览器进行打开。 3、修复方案: 加入用户身份认证机制或token验证,对系统的功能点增加权限控制。 <1> 采用Jav...

weixin_42728957的博客 3万+

AJP13漏洞利用

前言 平时学习过程中使用nmap扫描目标服务器或者C段的时候经常会发现8009端口的AJP13服务,一直没有很在意这个服务是干嘛的。直到遇见一个服务器没有开放其他多余的端口情况下迫不得已要弄清楚,开放的这个服务是干什么的,MSF下的脚本又使用不方便功能单一,所以就有了这个文章。 AJP13服务简介 AJP13是定向包协议。因为性能原因,使用二进制格式来传输可读性文本。AJP协议:WE

爱测未来团队博客 1万+

tomcat ajp协议安全限制绕过漏洞_CVE-2020-1938 Tomcat AJP 漏洞记录

漏洞描述 2020年1月6日,国家信息安全漏洞共享平台(CNVD)收录了由北京长亭科技有限公司发现并报送的Apache Tomcat文件包含漏洞(CNVD-2020-10487,对应CVE-2020-1938)。攻击者利用该漏洞,可在未授权的情况下远程读取特定目录下的任意文件。由于Tomcat AJP协议存在实现缺陷导致相关参数可控,攻击者利用该漏洞可通过构造特定参数,读取服务器webapp下的任...

weixin_39984201的博客 374

修改服务器的AJP监听地址,实习记录(五) - AJP协议文件读取漏洞

漏洞介绍Tomcat在 server.xml中配置了两种连接器:HTTP Connector:监听8080端口,负责建立HTTP连接。在通过浏览器访问Tomcat服务器的Web应用时,使用的就是这个连接器。AJP Connector:监听8009端口,负责和其他的HTTP服务器建立连接,通过AJP协议和另一个Web容器进行交互。Tomcat会开启AJP连接器,方便与其他Web服务器通过AJP协议进...

weixin_39737233的博客 517

CVE-2020-1938 Tomcat AJP 漏洞记录

漏洞描述 2020年1月6日,国家信息安全漏洞共享平台(CNVD)收录了由北京长亭科技有限公司发现并报送的Apache Tomcat文件包含漏洞(CNVD-2020-10487,对应CVE-2020-1938)。攻击者利用该漏洞,可在未授权的情况下远程读取特定目录下的任意文件。由于Tomcat AJP协议存在实现缺陷导致相关参数可控,攻击者利用该漏洞可通过构造特定参数,读取服务器webapp下的任...

po-ke-ye-sheng-miao的博客 163

Tomcat AJP协议安全漏洞CVE-2020-1938深度解析与实战修复指南

AJP协议作为Tomcat与前端Web服务器间的高效内部通信协议,其设计初衷是提升性能,但默认配置下的安全疏忽可能带来严重风险。其核心原理在于协议处理器对请求属性校验不严,攻击者可利用此缺陷构造恶意请求,绕过路径限制,进而读取服务器任意文件。这一漏洞的技术价值在于揭示了中间件默认配置的潜在威胁,强调了纵深防御中内部通信安全的重要性。在应用场景上,任何使用Tomcat且启用了AJP连接器的Web服务架构,尤其是未进行安全加固的版本,均可能面临敏感信息泄露甚至远程代码执行的风险。本文聚焦于CVE-2020-19

weixin_33861800的博客 465

Tomcat AJP协议漏洞CVE-2020-1938(幽灵猫)原理与实战复现

AJP(Apache JServ Protocol)协议是Tomcat服务器中用于与前端Web服务器(如Apache HTTPD)进行高效二进制通信的内部协议。其设计初衷是提升动态请求的代理转发性能,通常运行在8009端口且默认不对外暴露。然而,该协议在处理请求属性时存在校验缺陷,攻击者可构造包含路径穿越序列(如../../../)的恶意AJP请求,通过可控的`req_uri`或`javax.servlet.include.*`属性实现任意文件读取。这种漏洞不仅暴露了内部配置文件(如web.xml),在特定

weixin_33946020的博客 326

TomcatScanPro漏洞利用模块解析:从CVE-2017-12615到AJP协议实战

在Web安全领域,漏洞利用是验证系统脆弱性的关键环节,其核心原理在于通过构造特定请求触发软件缺陷,实现未授权访问或代码执行。从技术价值看,自动化利用工具能显著提升安全测试效率,将复杂的协议交互和Payload构造过程标准化,尤其在内网渗透和横向移动场景中作用突出。以Tomcat服务器为例,其历史高危漏洞如CVE-2017-12615的PUT文件上传和CVE-2020-1938的AJP协议文件读取,常被组合用于攻防演练。这些漏洞利用链的设计,不仅涉及HTTP方法绕过和协议解析,更需考虑权限维持与内网探测等后渗

weixin_33824363的博客 343

探索CNVD-2020-10487:Tomcat AJP LFI漏洞详解与利用实践

探索CNVD-2020-10487:Tomcat AJP LFI漏洞详解与利用实践 去发现同类优质开源项目:https://gitcode.com/ 项目简介 在上,我们发现了一个名为CNVD-2020-10487-Tomcat-Ajp-lfi的开源项目,由用户YDHCUI贡献。该项目主要针对的是中国国家信息安全漏洞库(CNVD)记录的2020年重大安全漏洞【CNVD-2020-10487】,该漏...

gitblog_00081的博客 1044

CVE-2020-1938 Ghostcat漏洞复现与Tomcat AJP协议安全深度解析

在Web应用安全领域,中间件安全是保障系统稳定性的基石。Apache Tomcat作为广泛使用的Java应用服务器,其AJP协议设计用于与前端Web服务器进行高效通信。该协议基于二进制格式,性能优于HTTP,但早期版本在实现时存在信任边界问题。其核心原理在于AJP连接器在处理请求属性时,未对前端代理传入的路径参数进行严格校验,导致攻击者可利用属性污染实现任意文件读取。这一漏洞的技术价值在于揭示了协议层信任模型缺陷可能引发的严重后果,即攻击者无需通过Web应用本身逻辑,即可直接读取服务器敏感文件,包括配置文件

weixin_33922670的博客 353

Tomcat AJP文件读取与Shiro反序列化漏洞实战攻防解析

在Java Web应用开发中,中间件安全是保障系统稳定运行的关键环节。中间件作为连接应用与操作系统的桥梁,其默认配置和协议处理机制往往隐藏着安全风险。以Tomcat和Apache Shiro为例,这两个广泛使用的组件分别因AJP协议处理缺陷和默认密钥问题,导致了严重的文件读取和反序列化漏洞。理解这些漏洞的原理,需要从协议信任机制和加密密钥管理入手。AJP协议在处理请求时未充分验证路径参数,而Shiro的RememberMe功能采用硬编码默认密钥,使得攻击者能够构造恶意请求实现远程文件读取或代码执行。这类漏洞

weixin_27199085的博客 276

幽灵猫漏洞实战:手把手复现Tomcat AJP文件包含(CVE-2020-1938)

本文详细介绍了如何复现Tomcat AJP文件包含漏洞(CVE-2020-1938,CNVD-2020-10487),包括漏洞背景、原理分析、实战复现步骤及修复方案。通过Python脚本演示漏洞利用过程,帮助安全研究人员深入理解AJP协议漏洞的利用与防御。

weixin_27875131的博客 241

Apache Tomcat AJP协议漏洞CVE-2020-1938(幽灵猫)原理、复现与修复

在Java Web应用架构中,中间件安全是保障系统稳定运行的关键环节。AJP(Apache JServ Protocol)作为Tomcat与前端Web服务器间的高效二进制通信协议,其设计初衷是提升性能,但若配置不当或存在缺陷,可能成为严重的安全隐患。其核心原理在于请求处理机制中对路径校验的缺失,攻击者可利用特定请求属性实现目录遍历。这种文件包含漏洞的技术价值在于它突破了Web应用的安全边界,使攻击者能够读取敏感配置文件甚至实现远程代码执行,对采用Tomcat作为中间件的企业环境构成直接威胁。应用场景广泛存在

weixin_33860528的博客 340
上一篇: ssh无法登录可以su切换的问题
下一篇: 利用javascript判断文件是否存在及window.open()404的解决
ranshao528
博客等级 码龄14年 1粉丝 0原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值