WordPress用户枚举漏洞修复加固方法

关于WordPress用户枚举漏洞的通报,涉及的地址为:/wp-json/wp/v2/users,经核实这是WordPress内置的REST API接口,这个接口默认情况下可以暴露网站上所有用户的信息,包括用户名、ID等。如果没有正确配置或限制访问,攻击者可以通过此接口枚举出所有网站的用户,从而为进一步的攻击做准备。

漏洞分析及影响

  1. 漏洞说明
    • WordPress的REST API允许通过wp-json/wp/v2/users接口列出网站的所有用户(如果没有权限限制)。
    • 攻击者只需通过简单的GET请求就能查看到网站上所有用户的详细信息,包括用户名等敏感数据。
  2. 影响
    • 信息泄露:攻击者能够枚举出所有用户名,暴露网站上的用户列表。
    • 暴力破解攻击:知道用户名后,攻击者可以进一步尝试使用暴力破解方法猜测密码,尤其是如果用户的密码弱或使用默认密码的情况下。
    • 社交工程:攻击者可以利用获取的用户信息进行社交工程攻击,伪装成某个用户进行诈骗或钓鱼攻击。

修复措施

1、服务器直接禁止对应地址的访问

此方法比较简单直接,禁止对应链接地址的访问以后可以直接解决此问题,不过可能会影响到后台部分涉及到此接口访问的功能。

步骤:

  • 找到你网站的 NGINX 配置文件,宝塔面板的话则是后台网站-设置-配置文件里面。
  • 在适当的位置(通常是在 server 块中)添加以下配置代码:
server {
    # 你的其他配置
    ...

    # 禁止访问 /wp/v2/users 和 /wp/v2/users/{id}
    location ~ ^/wp-json/wp/v2/users(/.*)?$ {
        deny all;
        return 403;  # 返回 403 Forbidden
    }

    # 你的其他配置
    ...
}
  • 重载 NGINX 配置

2、(推荐)基于WordPress内置filter移除接口,同时保留高权限用户的接口正常使用

此方式可以自动判断当前用户权限,由于rest api接口可能在后台发布文章的时候使用到,所以可以针对编辑权限开放此接口的访问,其他访问默认移除此接口,代码如下:

/**
 * 禁用 WordPress 用户枚举接口,只有具有编辑权限(editor)及以上权限的用户才可访问。
 * 
 * @author WPCOM
 * @version 1.0.0
 * @since 2024-12-26
 */
add_filter('rest_endpoints', function ($endpoints) {
    global $has_users_endpoint;
    if($has_users_endpoint) return $endpoints;

    if(isset($endpoints['/wp/v2/users'])){
        $users_endpoint = $endpoints['/wp/v2/users'];
        unset($endpoints['/wp/v2/users']);
    }

    // 编辑及以上权限可展示用户列表
    if (defined('REST_REQUEST') && REST_REQUEST && current_user_can('editor')) {
        // 恢复 /wp/v2/users 端点
        if(isset($users_endpoint)) $endpoints['/wp/v2/users'] = $users_endpoint;
        $has_users_endpoint = true;
    }

    return $endpoints;
});

以上代码可以添加到主题的functions.php文件或者其他封装的插件里面。

本文摘自网络,不代表短经典网立场 https://www.duanjingdian.com/1318.html

上一篇 2024 年 12 月 9 日 下午11:25
下一篇 2025 年 7 月 25 日 下午1:00

相关推荐

  • WordPress常用的几款电商商城插件

    1、WooCommerce 作为最受欢迎和功能强大的商城插件之一,WooCommerce提供了完整的电子商务解决方案。 支持创建产品、分类、购物车、支付、订单管理等功能。 提供多种…

    WordPress 2024 年 4 月 27 日
    6.2K
  • WordPress自动清空回收站的方法

    WordPress中,当您删除某个文章、页面、评论或附件时,它们不会被永久删除,而是被移动到一个名为“回收站”的地方,如果您想恢复已删除的内容,可以从回收站中恢复,如果您想彻底清空…

    2024 年 4 月 16 日
    2.9K
  • WordPress如何添加返回顶部按钮?有哪些插件?

    方法一:使用插件 1、登录WordPress后台:进入你的WordPress管理后台。 2、安装插件:在左侧菜单中,选择“插件” -> “安装插件”,在搜索框中输入“Back…

    WordPress 2024 年 9 月 24 日
    3.0K
  • WordPress标签调用大全

    WordPress模板基本文件 style.css 样式表文件index.php 主页文件single.php 日志单页文件page.php 页面文件archvie.php 分类和…

    WordPress 2024 年 4 月 21 日
    8.4K
  • WordPress如何自动为文章添加特色图片?

    在WordPress中自动为文章添加特色图像可以通过多种方式实现,以下是几种常用的方法: 1、使用插件自动设置特色图像 2、代码方法自动设置特色图像 3、利用媒体库的默认图像作为特…

    WordPress 2024 年 4 月 19 日
    2.6K
  • 一个WordPress 主题包含哪些文件?如何组成?

    WordPress作为全球最受欢迎的内容管理系统(CMS),其背后强大的定制性和灵活性主要得益于它的主题系统,一个主题框架,就像是一栋建筑的骨架,决定了网站的功能、外观和用户体验,…

    WordPress 2024 年 7 月 15 日
    1.1K
  • WordPress 最大安全隐患,xmlrpc.php

    什么是 XML-RPC首先要明白什么是 XML-RPC,它的全称是 XML Remote Procedure Call,即 XML 远程过程调用,它是一套允许运行在不同操作系统、不…

    WordPress 2024 年 5 月 4 日
    2.3K
  • 如何禁止WordPress头部加载s.w.org?

    s.w.org 是 WordPress 的一个开源 JavaScript 库,称为 "jQuery Varia",它包含了一些 jQuery 的扩展函数,这个库通常被包含在 Wor…

    WordPress 2024 年 4 月 19 日
    1.1K
  • WordPress和Hexo比较(wordpress和halo)

    WordPress和Hexo都是非常流行的博客平台,它们各自具有独特的特点和优势,下面是对它们的比较: 1、平台类型: WordPress是一个基于PHP的开源内容管理系统(CMS…

    WordPress 2024 年 5 月 21 日
    1.0K
  • 如何让WordPress后台支持上传svg格式图片?

    怎么让WORDPRESS后台支持上传svg格式图片呢? 方法很简单,只要将以下的函数代码放到自己网站模板的函数文件即可。 //让WordPress支持上传SVG图片 functio…

    WordPress 2024 年 5 月 30 日
    1.0K