拥有 BlogEngine.NET CMS(版本 3.3.8.0 及更早版本)EditOwnPosts 权限的用户,能够将恶意文件上传到硬编码位置。
向 /api/upload 端点发送包含 action=video 参数的 POST 请求(如下截图所示)会触发文件上传过程。

首先,应用程序会检查用户是否拥有 EditOwnPosts 权限以继续视频上传,否则会报错。
如下截图所示,在第 101 和 105 行,应用程序为上传的文件设置了硬编码位置。之后,它调用名为 UploadVideo 的函数(第 107 行)。

UploadVideo 函数会检查目标目录是否存在,若不存在则创建,并将文件保存到该目录。

如下截图所示,它将恶意文件移动到硬编码目录。请求该上传的文件会导致 RCE(远程代码执行)。
