WordPress极简博客 WordPress极简博客
  • 新鲜事
  • 战疫情
  • UI素材
    • UI素材
    • 电商/节日
    • PPT
      • 节日庆典
      • 工作汇报
      • 商业计划书
    • word
      • 简历竞聘
      • 合同/公文
  • 创客头条
    • 音乐分享
    • 初创文章
    • 极客头条
    • 生活趣事
    • 生活日记
    • 防骗指南
  • 编程教学
    • API日记
    • Linux安全栏目
      • Linux运维安全汇总
      • DDOS攻击防护
      • XSS攻击防护
      • SQL安全防护
    • Python技术栏目
      • Python基础入门
      • Python基础结构
    • WordPress技术栏目
      • WP主题
      • WordPress技术教程
      • RIPRO主题美化
    • WordPress漏洞发布
    • 技术教程汇总
    • 严选源码
  • 专题
  • 基友
  • 隐私
  • 注册
    登录
立即登录
  • 首页
  • 云优化
  • 新疫情
  • 新鲜事
    • 热文
    • 极客
    • 生活
  • 技术篇
    • WP主题
    • 技术教程
    • Python入门
    • Python基础
  • 专题篇
  • 友链君
首页 WordPress漏洞发布 WP数据库重置插件中修补的容易利用的漏洞

WP数据库重置插件中修补的容易利用的漏洞

夏柔 4月 24, 2020

1月7日,我们的威胁情报小组在WP Database Reset中发现了漏洞,WP Database Reset是一个安装在80,000多个网站上的WordPress插件。其中一个漏洞允许任何未经身份验证的用户将数据库中的任何表重置为初始WordPress设置状态,而另一个漏洞则允许任何经过身份验证的用户(即使是权限最小的用户)也可以授予其帐户管理特权,同时删除所有表中的其他用户的请求很简单。

这些被认为是严重的安全问题,可能导致站点完全重置和/或接管。我们强烈建议立即更新到最新版本(3.15)。自1月8日以来,Wordfence Premium用户已通过自定义防火墙规则免受这些漏洞的攻击。无Wordfence的用户将在2月7日获得相同的保护。


说明:
受影响的 未经身份验证的数据库重置插件:受影响的WP数据库重置
版本: <= 3.1
CVE ID: CVE-2020-7048 
CVSS得分: 9.1(严重)
CVSS矢量: CVSS:3.0 / AV:N / AC:L / PR:N / UI:N / S:U / C:N / I:H / A:H 
修补版本: 3.15

WP Database Reset是一个易于使用的数据库重置插件,它使用户能够将其站点上的所有数据库表重置为与全新WordPress安装相同的状态。对于在其网站上进行测试的管理员以及想要重新启动而无需重新安装完整WordPress的管理员而言,这非常方便。此插件提供了强大的功能,如果不加保护,可能会对网站所有者造成严重破坏。不幸的是,这正是我们在此插件中找到的。

插件中的任何数据库重置功能都没有通过功能检查或安全随机数来安全地保护。没有适当的安全控制措施,WP Database Reset插件包含一个严重的缺陷,该缺陷使所有未经身份验证的用户都可以重置数据库中的任何表。此重置将导致数据可用性完全丧失。攻击者可以发送简单的请求,并且网站将完全重置为WordPress标准默认值。

插件代码的漏洞版本:

public function reset( array $tables ) { 
if ( in_array('users', $tables ) ) {
$this->reset_users = true;
}

$this->validate_selected( $tables );
$this->set_backup();
$this->reinstall();
$this->restore_backup();
}

private function validate_selected( array $tables ) {
if ( ! empty( $tables ) && is_array( $tables ) ) {
$this->selected = array_flip( $tables );

带有安全随机数检查和功能检查的插件代码修订版:

public function reset(array $tables) {   if (wp_verify_nonce(@$_REQUEST['submit_reset_form'], 'reset_nounce') && current_user_can('administrator')) {      // Check if current user is Admin and check the nonce     if (in_array('users', $tables)) {       $this->reset_users = true;     }     $this->validate_selected($tables);     $this->set_backup();     $this->reinstall();     $this->restore_backup();   } else {     throw new Exception(__('Please reload the page and try again. Double check your security code.', 'wordpress-database-reset'));   } }

WordPress数据库存储构成站点的所有数据,包括帖子,页面,用户,站点选项,评论等。只需单击几下几秒钟,如果未经身份验证的用户使用的是该插件的漏洞版本,则未经安装的用户可以清除整个WordPress安装。


说明:
受影响的 特权升级插件:受影响的WP数据库重置
版本: <= 3.1
CVE ID: CVE-2020-7047 
CVSS得分: 8.8(高)
CVSS矢量: CVSS:3.0 / AV:N / AC:L / PR:L / UI:N / S:U / C:H / I:H / A:H 
修补版本: 3.15

为了进一步升级以前的漏洞,所有被验证为订阅者及更高版本的用户都可以重置wp_users表。最初,这似乎不太严重。在数据库重置期间删除所有用户可能会有问题,但是我们总是可以重新创建用户,对吗?不幸的是,这更加复杂。每当wp_users重置表时,它都会从用户表中删除所有用户,包括所有管理员,但当前登录的用户除外。发送请求的用户将自动升级为管理员,即使他们只是订阅者也是如此。该用户还将成为唯一的管理员,从而​​使攻击者可以完全控制WordPress网站。

private function update_user_settings() {
global $wpdb;

$user_id = $this->reset_users? 1: $this->user->ID;

$wpdb->query(
$wpdb->prepare(
"UPDATE $wpdb->users
SET user_pass = '%s', user_activation_key = ''
WHERE ID = '%d'",
$this->user->user_pass, $user_id
)
);

if ( $this->reset_users ) {
wp_clear_auth_cookie();
wp_set_auth_cookie( true );
}
}

如果站点所有者允许使用WP数据库重置插件的漏洞版本在站点上进行开放注册,则可能会失去对其站点的控制。这是此漏洞如何发挥作用的演示。

提醒:备份您的WordPress网站

此漏洞提醒我们,维护站点备份对于维护站点的安全性和可用性至关重要。有些妥协需要专业清理或事件响应以及法医调查。如果没有备份,经过这样的妥协,即使是专业的补救措施也无济于事。发生妥协时,备份还可以缩短恢复时间。我们建议网站所有者:

  • 定期间隔备份。每周一次将是一个不错的起点。
  • 每次在站点上进行重大更改时都进行备份。
  • 将备份存储在与WordPress安装分开的服务器或设备上。这样,在站点或其服务器受到威胁的情况下,可以信任备份的完整性。

披露时间表

2020年1月7日 –最初发现并分析了漏洞。
2020年1月8日 –向插件开发人员披露了全部详细信息,并向Wordfence高级用户发布了自定义防火墙规则。
2020年1月13日 –开发人员回覆并通知我们第二天将发布补丁。
2020年1月14日 –发布补丁。
2020年1月16日 –公开披露。

结论

在今天的帖子中,我们详细介绍了WP Database Reset插件中发现的两个严重漏洞。这些漏洞已在3.15版中修复。如果您的网站上安装了此插件,我们敦促您立即进行更新。

1
等 1 人赞过
J2dcg1.png
猜你喜欢
  • Nginx添加跨域限制规则
  • 使用测速脚本对国内Linux服务器进行测速
  • 域名爆破之自动化信息收集脚本
  • 利用免费接口实现国家开放大学刷网课脚本
  • RiProV2定制导航条
  • 判断是否在微信浏览器打开
  • 微信内自动播放音频非百度方案
  • 利用veImageX加速您的网站,想不快都难!
  • SWAPIDC减少注册信息及防刷注册量教学
  • Python实现定时发送每日早报及生活指数
23 2月, 2023
公益ChatGPT进行中
夏柔
站长
夏山如碧 - 怀柔天下
1700
文章
25
评论
58145K
获赞
版权声明

文章采用创作共用版权 CC BY-NC-ND/2.5/CN 许可协议,与本站观点无关。

如果您认为本文侵犯了您的版权信息,请与我们联系修正或删除。
投诉邮箱wpsite@aliyun.com

栏目推荐
Python基础入门33
WordPress技术教程267
前沿技术情报所22
城市创新——新消费11
最近有哪些不可错过的热文23
程序员的养生之道0
节
春
  • 新鲜事
  • 疫情实况
  • UI素材
  • 技术教程
  • 音乐分享
  • 专题
  • 友情
  • 隐私
  • 云优化
Copyright © 2019-2025 WordPress极简博客. Designed by 夏柔. 辽公网安备21010502000474号 辽ICP备19017037号-2