起因

最近在查看站点 【访问日志】的时候,发现有大量的 POST 请求到 /xmlrpc.php页面。

从请求的IP :52.186.155.64 以及请求的次数来判断,应该是一个恶意自动程序。

通过不断的POST事先构造好的代码,来爆破Wordpress的管理密码

xmlrpc.php 原本是Wordpress 程序留给手机APP用的一个API页面。被攻击者用来爆破后台管理密码。

这里先不讨论如何防护,也先不讨论它是否能爆破成功。我先顺着这个IP找到最早的几条访问记录。

【第1、2条】

请求:自动攻击程序,首先使用了两次GET 请求来访问我网站的首页。

作用:目测是用来判断,这个站点是否在线。

【第3条】

请求:自动攻击程序构造了 https://域名//wp-includes/wlwmanifest.xml 的URL进行GET

作用:目测是用来判断你是否使用了Wordpress程序。

【第4-6条】

请求:构造了 //?author=1 //?author=2 //?author=3

作用:目测是通过用户ID ,来确定你的管理员用户名!

【第7条】

请求:构造了 https://域名//wp-json/wp/v2/users/ 的URL进行GET

作用:用以再次确认你的管理员用户名是否正确!

【第8条】

请求:构造了 //wp-json/oembed/1.0/embed?url=xxx的URL进行GET

作用:猜测应该是旧版本Wordpress的一个 CVE-2017-6514的漏洞

通过以上8条请求,自动攻击程序就已经获得了你的【管理员用户名】

从而通过构造POST请求来不断的爆破你的/xmlrpc.php页面。来猜解你的密码。

当然爆破的成功率肯定是极小的。因为稍微注意Wordpress 安全的小伙伴早已把登陆页面隐藏了。或者直接禁用了xmlrpc.php页面。

不过没有安全加固的默认状态下,被攻击者拿到了管理员用户名还是很不爽的。

各位小伙伴可以通过以上URL测试一下自己的Wordpress站点。看看是不是可以拿到敏感信息。

http://你的域名/wp-includes/wlwmanifest.xml

http://你的域名/wp-json/wp/v2/users/

解决方案

在当前主题目录的 functions.php文件里添加以下代码:

// 在账号未登录时禁用wp-json/wp/v2/,防止泄露信息
add_filter( 'rest_authentication_errors', function( $result ) {
    if ( ! empty( $result ) ) {
        return $result;
    }    if ( ! is_user_logged_in() ) {
        return new WP_Error( 'Access denied', 'You have no permission to handle it.', array( 'status' => 401 ) );
    }    return $result;
});
END
本文作者: 文章标题:攻击者是这样拿到你的Wordpress 【管理员用户名】的!!
本文地址:https://e.ki/136/
版权说明:若无注明,本文皆e.Ki原创,转载请保留文章出处。
Last modification:January 17th, 2021 at 06:02 pm
爱我有很多种方式,比如说打赏我。