这个漏洞是历史版本发现的漏洞,在最新版本上已经被修复
WordPress 下载管理器是一个文件/文档管理插件,旨在管理、跟踪和控制 WordPress 网站的文件下载。您可以使用密码和用户角色来控制对文件的访问、管理下载速度并限制每个用户的下载数量。它还提供验证码锁定或 IP 阻止等功能来阻止机器人、不需要的用户或垃圾邮件发送者。您甚至可能要求用户在下载之前同意您的条款和条件。Wordpress download-manager 插件存在 越权漏洞,攻击者在知道某个文件的下载密码后,可以下载网站上的任意加密文件。
神奇的越权漏洞
漏洞测试
插件下载地址 https://downloads.wordpress.org/plugin/download-manager.3.2.70.zip
登录后台后,上传并加载启用插件,我们添加两个不同的文件,并设置不同的密码



访问对应的下载页面

点击下载均需要输入密码

此时我们仅知道文件1 的下载密码是123456 文件二的密码并不清楚

输入密码显示出了文件的下载地址
此时我们访问下载地址

下载的文件一的内容,同时修改参数wpdmdl 的值

发现将文件二也下载了下来
漏洞分析
\WPDM__\Apply::triggerDownload 处理下载操作

\is_wpdmkey_valid

\WPDM__\TempStorage::get

我们注意到key 的处理查询跟时间有关 跟 id 无关,所以获取的key 在时间范围内可以下载任意加密文件,无论密钥值。