网站内容管理系统 上传word(国外安全研究组织发布WordPress任意文件删除到代码执行漏洞文章)
优采云 发布时间: 2021-11-04 06:04网站内容管理系统 上传word(国外安全研究组织发布WordPress任意文件删除到代码执行漏洞文章)
阅读:2,096
2018年6月28日,国外安全研究机构rips团队发布了WordPress从删除任意文件到代码执行的漏洞文章,文章指出攻击者可以利用该漏洞删除任意文件文件,如删除WordPress建站配置文件wp-config.php。删除这个文件,界面会进入网站安装页面。重新安装网站后,进入管理员后台获取网站shell。控制WordPress网站,所以该漏洞危害很大。唯一的缺陷是攻击者需要具备操纵多媒体文件的能力,一般的作者权限可以触发该漏洞。
攻击难度:中等。
危害程度:高。
什么是WordPress
WordPress 是一个基于 PHP 和 MySQL 的免费开源博客软件和内容管理系统。WordPress 有一个插件架构和模板系统。在 Alexa 的前 100 万 网站 中,超过 16.7% 的 网站 使用 WordPress。根据 w3tech 的数据,大约 30% 的 网站 使用它。WordPress 是目前互联网上最流行的博客系统。
冲击版技术分析
在/wp-admin/posts.php文件中,编辑附件时,有如下代码:
首先通过wp_get_attachment_metadata函数获取当前post_id的内容对应的元数据信息,即数据库表wp_postmeta中的信息,然后在元数据信息中添加thumb内容。拇指内容直接通过POST不处理,最后更新元数据。信息。
然后在删除媒体内容的时候,有如下代码:
当前用户有删除内容的权限时,调用wp_delete_attachment函数,这里的post_type默认为attachment。
然后跟进wp_delete_attachment函数,在文件/wp-includes/post.php
跟进功能:
同理,首先通过wp_get_attachment_metadata函数获取post_id对应的内容的元数据信息,然后当thumb不为空时,最后解链文件:
从meta['thumb']到thumbfile,再从thumbfile进入unlink函数,文件没有过滤,导致直接删除文件。
通过上面的分析,我们先修改媒体文件,将thumb分配给要删除的文件,然后再删除媒体文件,可以删除任何文件。
漏洞验证
首先我们注册一个有作者权限的用户,登录后添加媒体文件,然后编辑文件
并找到修改图像时的wpnonce值
然后发送修改图片的请求,这里我们在网站的根目录下新建一个文件111111,然后将要删除的文件修改为111111:
此时图片已修改,图片元数据中thumb的内容为../../../../111111文件路径。
然后我们正在删除文件,首先找到删除文件时的wpnonce:
最后,直接发送删除请求:
使用以下断点,您可以在此处看到删除的特定文件:
终于成功删除了我们新创建的111111文件。
然后用同样的方法删除wp-config.php文件。
保护计划
目前官方没有修复方案,这里是临时修复方案。
在/wp-admin/post.php中,修改图片文件时,wp_update_attachment_metadata更新元数据时处理传入的thumb文件,如图:
参考链接