CodePath 第7 & 8 周作业:CVE-2017-14719、CVE-2019-9787 以及通过 REST API 进行未认证的页面/文章内容修改
花费时间:总共 16 小时
目标:查找、分析、复现并记录影响旧版 WordPress 的漏洞
- [ ] 复现步骤:如果攻击者成功获取了管理员帐户的访问权限,他们可以点击“插件”按钮查看已安装的插件。每个插件旁边都有一个“删除”按钮,点击后攻击者将进入一个页面,在该页面中管理员可以在做出永久更改之前查看要删除的目录内容。在此页面中,攻击者可以从 URL 中删除插件名称(位于 checked[0]= 之后和 '&' 之前)。攻击者将插件名称替换为一个或多个 "../" 字符,直到到达他们想要删除的特定目录。
- [ ] 受影响源代码:
- https://core.trac.wordpress.org/browser/tags/3.8/src/wp-admin/plugins.php
#######################################################################################
########################################################################################
我使用了来自此 URL 的 python 利用代码:https://www.exploit-db.com/exploits/41223
在完成“通过 REST API 进行未认证的页面/文章内容修改”时,我遇到了 python 文件的导入错误,原因是未安装 lxml 包。安装 lxml 后,我再次尝试运行 'python [exploit_file_name].py http://wpdistillery.vm'。这时遇到了第二个问题:收到了 UnicodeEncodeError。我通过删除包含超出范围序号的多余文章解决了这个问题。

我创建了一篇包含纯文本内容的新文章,并再次运行脚本。脚本成功执行,发现了 API 端点并获取了可用的文章 ID、标题和链接。
版权所有 [年份] [版权所有者姓名]
根据 Apache 许可证 2.0 版(以下简称“许可证”)授权;
除非符合许可证的规定,否则您不得使用此文件。
您可以在以下网址获取许可证副本:
http://www.apache.org/licenses/LICENSE-2.0
除非适用法律要求或书面同意,根据许可证分发的软件
均按“原样”分发,不附带任何明示或暗示的担保或条件。
请参阅许可证以了解管理权限和
限制的特定语言。