前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >wordpress任意文件删除漏洞分析

wordpress任意文件删除漏洞分析

作者头像
xfkxfk
发布于 2018-07-24 07:47:37
发布于 2018-07-24 07:47:37
6410
举报

本文内容比较多,建议点击https://blog.formsec.cn/2018/07/03/wordpress%E4%BB%BB%E6%84%8F%E6%96%87%E4%BB%B6%E5%88%A0%E9%99%A4%E6%BC%8F%E6%B4%9E%E5%88%86%E6%9E%90/

进行浏览。

0x00 综述

2018年6月28日,国外安全研究组织rips团队发布了一篇WordPress任意文件删除到代码执行的漏洞文章,文章中指出攻击者可以利用此漏洞删除任意文件,比如删除WordPress建站配置文件wp-config.php,通过删除此文件可导致界面进入网站安装页面,通过重装网站后进入管理员后台即可获取网站shell从而控制WordPress网站,故该漏洞的危害很大。唯一缺陷就是需要攻击者拥有操作多媒体文件的功能,一般作者权限就可以触发漏洞。

攻击难度:中。

危害程度:高。

影响的版本: ≤4.9.6

0x01 技术分析

在文件/wp-admin/posts.php中,当编辑附件时有如下代码:

首先通过wp_get_attachment_metadata函数获取当前post_id对应内容的metadata信息,也就是数据库wp_postmeta中的信息,然后给metadata信息中添加一个thumb的内容,这个thumb的内容通过POST直接传递,没有经过处理,最后更新metadata的信息。

然后在删除媒体内容时,有如下代码:

当前用户有删除内容的权限时,调用了wp_delete_attachment函数,这里的post_type认就是attachment

然后跟进wp_delete_attachment函数,在文件/wp-includes/post.php

跟进次函数:

同样首先通过wp_get_attachment_metadata函数获取post_id对应内容的metadata信息,然后当thumb不为空时,到最后unlink文件:

meta[‘thumb’]thumbfile,再从thumbfile进入unlink函数,没有对文件进行过滤处理,导致直接删除文件。

通过上面的分析,我们首先通过修改媒体文件,给thumb赋值为你想删除的文件,然后再删除此媒体文件,既可以删除任意文件。

0x02 漏洞验证

首先我们注册一个author的作者权限用户,登陆后添加媒体文件,再编辑文件

并且找到修改图像时的wpnonce值

然后发送修改图像的请求,这里我们在网站根目录下新建了一个111111文件,然后修改要删除的文件为111111:

此时已经修改图像,并且图像的metadata中thumb的内容就是../../../../111111文件路径。

然后我们在删除该文件,首先找到删除文件时的wpnonce:

最后直接发送删除请求:

http://localhost/wordpress-4.7.4/wp-admin/post.php?post=12&action=delete&_wpnonce=d85e71ffa9

同下断点可以看到这里删除的具体文件:

最后成功删除我们新建的111111文件。

那么删除wp-config.php文件同理。

0x03 防护方案

目前官方没有提供修复方案,这里给出临时修复方案。

在/wp-admin/post.php中,当修改图像文件时,在wp_update_attachment_metadata更新metadata时对传入的thumb文件进行处理,如图:

0x04 参考链接

https://blog.ripstech.com/2018/wordpress-file-delete-to-code-execution/

Other

FormSec团队近期在筹建一支CTF战队,目标就是成为国内顶尖的CTF战队,参与国内外CTF赛事。我们可以尽我们所能为CTF战队成员提供一些我们可以提供的福利。目前,战队已经有数位web二进制等大牛,期待有更多的大佬加入!

如有兴趣请联系admin#formsec.cn详聊

往期精彩回顾

铁人三项2018 pwn [aleph1] Writeup

铁人三项2018 pwn [heapmain] Writeup

ISCC 2018 Writeup

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-07-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 逢魔安全实验室 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
WordPress教程:如何删除文章的同时删除图片附件以及特色图像
对于使用WordPress建站的朋友们知道,对于有些觉得过时了的文章或者自己觉得不喜欢了,想删除,但在删除文章时,一般来说文章内所上传到媒体库的图片等附件不会自动删除。这样长时间的积累,占用的资源也不少。那如何在删除文章的同时删除图片附件以及特色图像呢?以下的代码可以实现在删除文章时自动删除文章图片附件以及特色图片,这样就不用手动去媒体库寻找并删除,准确而且效率高。将代码放到当前主题functions.php文件中即可删除文章图片附件。
帝旭科技
2022/11/23
1.8K0
WordPress教程:如何删除文章的同时删除图片附件以及特色图像
WordPress6.1.0中文正式版及优化代码
WordPress,全球广泛使用的知名免费开源网站博客程序。WordPress是一种使用PHP语言开发的博客平台,用户可以在支持PHP和MySQL数据库的服务器上架设自己的网站,也可以把WordPress 当作一个内容管理系统(CMS)来使用。WordPress 还是一个免费的开源项目,在GNU通用公共许可证下授权发布。
回忆大大
2023/03/09
1.1K0
WordPress6.1.0中文正式版及优化代码
Wordpress中文章的特色图像Featured Image究竟存在哪里?
最近项目需要,分析了一下Wordpress的特色图像 Feature Image的上传、保存方式,这一分析觉得Wordpress的数据结构设计还真是有想法。
大江小浪
2019/02/22
1.6K0
Wordpress中文章的特色图像Featured Image究竟存在哪里?
从WordPress SQLi谈PHP格式化字符串问题
近日,WordPress爆出了一个SQLi漏洞,漏洞发生在WP的后台上传图片的位置,通过修改图片在数据库中的参数,以及利用php的sprintf函数的特性,在删除图片时,导致'单引号的逃逸。漏洞利用较为困难,但思路非常值得学习。
Seebug漏洞平台
2018/03/09
1K0
从WordPress SQLi谈PHP格式化字符串问题
从WordPress SQLi谈PHP格式化字符串问题
0x00 背 景 近日,WordPress爆出了一个SQLi漏洞,漏洞发生在WP的后台上传图片的位置,通过修改图片在数据库中的参数,以及利用php的 sprintf 函数的特性,在删除图片时,导
Seebug漏洞平台
2018/03/30
1.1K0
B2主题底部网站统计美化
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
小狐狸说事
2022/11/17
1K0
B2主题底部网站统计美化
WordPress获取文章浏览总数
大部分 WordPress 都会安装 wp-postviews 插件来记录文章浏览量,这是一个很实用的插件。不过它并没有提供计算文章浏览总数的功能,为了弥补这个缺憾,我们可以在插件基础上 DIY 一个统计文章浏览总数的功能。 实现很简单,网络上也已经有文章做了分享,代码如下: //浏览总数 function lo_all_view() { global $wpdb; $count=0; $views= $wpdb->get_results("SELECT * FROM $wpdb-
张戈
2018/03/21
1.1K0
深入解析sprintf格式化字符串带来的注入隐患!
对每个列进行dump但是dump下来不对,找了一波原因没有找到,开始用脚本跑 跑完后才发现sqlmap跑出来的列不对,应该是flag,于是
Java程序猿
2023/02/17
1.6K0
WordPress子比主题添加底部统计信息模块小工具
织音在此提醒您:zibll.com是Zibll子比主题唯一官网,子比主题受国家版权保护,著作权登记号: 2021SR0401471 使用盗版主题对您的网站及财产安全将会带来无数的未知风险!同时,开发不易,我们一直在努力让子比主题变得更加美好,为了您的权益及作者的不易,真诚的呼吁每一位用户:支持正版,从我做起!
若梦
2022/04/01
1.4K0
WordPress安装Memcached内存缓存优化
WordPress:Memcached 内存缓存优化 ,加速WordPress 后台媒体库加载
会长君
2023/04/26
5670
WordPress 技巧:通过图片地址获取 ID
当我们知道图片的地址的时候,需要知道这张图片在数据库中的 ID,从而获取图片的详细信息,比如高,宽等等,来做一些操作,那么首先第一个怎么通过图片地址获取 ID?可以通过下面函数实现:
Denis
2023/04/15
9480
WordPress完美解决文章ID不连续问题
一、禁用文章修订版 所谓的文章修订版就是你每次修改一次文章,它都会自动帮你保存修改之前的文章版本,专业术语叫做版本控制,这样保证了在误修改的情况下可以还原之前的内容,这个在维基文档的维护方面是有很大帮助的,但是作为我们的小博客,似乎没多大用处,而且这个修订版在数据库中是占据一个ID的,这也是导致文章ID不连续的问题之一。要想禁用文章修订版,可以在 wp-config.php文件中添加:
超级小可爱
2023/02/20
1.6K0
WordPress过滤首页部分文章
我其实一直挺困扰《每周歌词》的展示问题。原本这个栏目是我高中时期为了做站点SEO,保证博客能按时更新设定的。所以这个系列一开始都更新的很潦草,甚至大部分是在返校路上写出来的,完全没有质量可言。但是现在我已经有充足的时间更新博客虽然我也不更新,所以也越来越重视《每周歌词》的质量。如今的《每周歌词》已经逐渐变成我个人对某首歌曲和它歌词的感悟了。但是原先存在着的大量《每周歌词》非常占用首页空间,让技术相关的文章都难以找寻,这就违背了这个博客的初衷了。我曾经也尝试了很多种办法以解决,比如单独开子博客(因为数据太难迁移放弃),还有写一篇专门用来推荐的文章索引(因为懒得更新放弃),但是这些办法都不尽如人意。
KAAAsS
2022/01/14
2860
WordPress过滤首页部分文章
WordPress 技巧:改进 404 页面跳转到正确的页面的效率
WordPress 有一个权威 URL(Canonical URL)的概念,可以帮你避免一些 404 问题,跳转到正确的页面。但是如果你的博客有多个 post type 的话,这样导向会失效,我们可以在当前主题的 functions 文件中添加如下代码,提高 404 页面导向正确的页面的效率:
Denis
2023/04/15
8000
Wordpress博客如何获取站点总访问量
很多Wordpress博主都折折腾腾的添加自己喜欢,并且力所能及的小功能,在折腾中学习进步。
Kit
2021/08/02
1.5K0
Wordpress博客如何获取站点总访问量
WordPress SQL含义讲解
特殊说明: 以上文章,均是我实际操作,写出来的笔记资料,不会盗用别人文章!烦请各位,请勿直接盗用!转载记得标注来源!
收心
2022/02/17
3040
Popularity Contest 转换到 PostViews
前面在通过优化插件来提高 WordPress 运行效率中谈到:我一直使用的 Popularity Contest 这个插件,这个是非常好的插件,但是它一个很大的问题是对数据库操作实在太多了,因为要统计一篇日志在 single category archive home feed 等下的被阅读的次数,其实个人觉得只有在 single 下阅读次数是最重要的,如果要求提供 WordPress 运行效率的情况下,最好转换到 PostViews 这个插件。今天就把转换函数贴出来,本来想用 SQL 转换的,后来发现一个循环更容易解决问题,代码如下:
Denis
2023/04/13
1670
关于wordpress文章id不连贯的问题
首先需要知道页面和附件也是需要占用id的,一般这2个是可以忽略不关注的,大家更关注的是文章id连贯的问题,特别是把文章id当链接用的情况下,上下文章id相差太多,就感觉有点奇奇怪怪的,所以很多人都想解决这个问题,我很早也发过解决代码了,但是今天再测试某个东西的时候,突然想到,id缺失的问题,就尝试了一下新方法。
速企云
2024/03/28
1971
【说站】WordPress网站文章ID不连续如何解决?
对于WordPress网站文章ID不连续的问题困扰了我很久,今天将WordPress文章ID不连续的原因和具体解决办法做详细的说明。
很酷的站长
2022/11/24
5650
【说站】WordPress网站文章ID不连续如何解决?
【说站】详细介绍WordPress数据库表wp_postmeta
wp_postmeta数据表是WordPress中存储文章的一些相关信息,如文章缩略图地址、缩略图长宽高和alt信息、文章所在分类的URL、文章自定义的Description和Keywords、文章访问次数等;
很酷的站长
2022/11/24
1.9K0
【说站】详细介绍WordPress数据库表wp_postmeta
推荐阅读
相关推荐
WordPress教程:如何删除文章的同时删除图片附件以及特色图像
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文