1:安装插件,在wordpress后台搜索一下就有很多这样的相关插件。
2:在functions.php中添加。PS:很多主题已集成此代码。
2:add_filter('xmlrpc_enabled','__return_false');
对比: add_filter('xmlrpc_enabled', '__return_false');
你们对比上面两段代码,是一样的,但又不是一样的。你们觉得问题出在哪里了?是不是大小写?多了个空格。。。。。。。。。。。。
抄来的核心点分享:我在某网站还看到有人在分享破解方法:
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/
// 屏蔽 REST API
add_filter('rest_enabled', '__return_false');
add_filter('rest_jsonp_enabled', '__return_false');
// 移除头部 wp-json 标签和 HTTP header 中的 link
remove_action('wp_head', 'rest_output_link_wp_head', 10 );
remove_action('template_redirect', 'rest_output_link_header', 11 );
/** * 禁用 WordPress 的 JSON REST API * https://www.wpdaxue.com/disable-json-rest-api-in-wordpress.html */ add_filter('json_enabled', '__return_false'); add_filter('json_jsonp_enabled', '__return_false');
当然,如果你不会折腾代码,可以直接下载安装 Disable JSON API 插件激活即可,无需设置。
如果你是宝塔而且安装了专业版防火墙,还可以这样设置
在禁止访问的url中添加以下规则:
- /wp-json/wp/v2/users
- /wp-includes/wlwmanifest.xml
伪静态禁止办法:上面的方法都有些麻烦,下面的最实用,把想屏蔽的都屏蔽了。
- location ~ ^/wp-json/wp/v2/users {
- deny all;
- }
- location ~ ^/wp-includes/wlwmanifest.xml {
- deny all;
- }