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

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

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

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

工具目录

分类

查看所有分类
Loading categories
CVE-2021-29447 — 逐步演示 CVE-2021-29447,这是一个 WordPress 媒体库 XXE 漏洞,可通过精心构造的 WAVE 上传泄露敏感文件,包括利用和修复细节。 | Kitploit
工具/GitHubGitHub/abdulazizalsewedy/cve-2021-29447
漏洞分析漏洞利用Web应用程序漏洞利用数据泄露信息收集学习与教育
GitHubabdulazizalsewedy/cve-2021-29447

CVE-2021-29447

逐步演示 CVE-2021-29447,这是一个 WordPress 媒体库 XXE 漏洞,可通过精心构造的 WAVE 上传泄露敏感文件,包括利用和修复细节。

查看仓库
23年前尚未审核

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

WordPress XXE漏洞:CVE-2021-29447

具有上传恶意WAVE文件能力(例如作者)的用户,可以利用WordPress媒体库中的XML解析问题,导致XXE攻击,进而可能导致文件系统信息泄露

漏洞代码

XML外部实体(XXE)漏洞

XML提供了定义自定义实体的可能性,这些实体可以在整个文档中重复使用。例如,这可以用于避免重复。以下代码定义了一个实体myEntity供后续使用。

1

定义的实体的值也可以来源于URI引用的外部源。在这种情况下,它们被称为外部实体:

2

XXE攻击滥用了这一特性。如果攻击者提供file:///var/www/wp-config.php作为URI,他将成功泄露敏感文件内容。当在用户控制的内容上运行配置宽松的XML解析器时,这种攻击是可能的。

WordPress中的XXE

WordPress具有媒体库,允许经过身份验证的用户上传媒体文件,然后可以在他们的博客文章中使用。为了从这些媒体文件中提取元信息,例如艺术家姓名或标题,WordPress使用了getID3库。其中一些元数据以XML形式解析。这里报告了一个可能的XXE漏洞(第730行)。

14

libxml_disable_entity_loader(true)函数已被弃用,因为PHP 8版本使用Libxml2 v2.9+,默认情况下禁用外部实体获取。

利用

使用以下命令创建一个恶意的WAVE文件

4

创建一个dtd文件,然后添加以下代码,这将允许你检索包含敏感数据(如数据库凭证)的wp-config.php文件。

5

现在启动一个HTTP服务器

6

将恶意的.wav文件上传到WordPress应用程序。上传.wav文件后,你应该在HTTP服务器日志中看到以下请求。注意,为了有效窃取数据,请使用Zlib进行解码。

8

之后你将获得数据库凭证,登录数据库并尝试找到管理员

9

corp-001是管理员,破解其密码哈希,然后以管理员身份登录

11

修复代码

WordPress在5.7.1版本中通过重新引入libxml_disable_entity_loader()函数的调用来修补了该漏洞,该函数在PHP 8中已被弃用。为了避免PHP弃用警告,在调用中加入了PHP错误抑制操作符@。

12

资源:

https://blog.wpsec.com/wordpress-xxe-in-media-library-cve-2021-29447/
https://nvd.nist.gov/vuln/detail/CVE-2021-29447
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-29447
https://github.com/motikan2010/CVE-2021-29447
https://www.youtube.com/watch?v=pkooNXGHl7c
https://www.youtube.com/watch?v=tE8Smz1Jvb8
https://www.mend.io/vulnerability-database/CVE-2021-29447

下载工具