早在2012 年 12 月 17 日一些采用 PHP 的知名博客程序 WordPress被曝光存在严重的漏洞,该漏洞覆盖WordPress 全部已发布的版本(包括WordPress 3.8.1)。该漏洞的 WordPress 扫描工具也在很多论坛和网站发布出来。工具可以利用 WordPress 漏洞来进行扫描,也可以发起DDoS 攻击。经过测试,漏洞影响存在 xmlrpc.php 文件的全部版本。
可能很多WordPress用户都不知道这个xmlrpc.php是什么,简单地说就是Wordpress 为手机等客户端提供的接口文件,早期的Wordpress 这个接口就是个万恶之源,虽然经过多次的升级,但目前也不太安全,恶意程序会不断尝试扫描这个文件,造成主机资源耗尽而瘫痪,很多WP用户用都遇到过主机商类似的警告“因过度消耗资源暂时无法访问”,与这个接口有很大的关系。
最近我也遇到了大规模的wordpress后台(wp-login.php)爆破,wordpress差点沦为了骇客手中的僵尸机。不过确实一种另类的wordpress暴力破解攻击。骇客利用xmlrpc.php文件来绕过wordpress后台的登录错误限制进行爆破。
一、修改主题functions.php文件
1、在文件内添加以下代码:
//禁用XML-RPC接口 add_filter('xmlrpc_enabled', '__return_false');
2、还可以用代码转向任意网址:
add_action('login_enqueue_scripts','login_protection'); function login_protection(){ if($_GET['root'] != 'zhuanxiang')header('Location: http://任意其他网站或者网站首页/'); }
然后我们自己登录时需要用:网站域名/wp-login.php?root=zhuanxiang,这个网址访问后台。
3、只关闭XML-RPC的pingback 端口
如果你还是用使用第三方客户端来管理Wordpress文章,那么可以只关闭XML-RPC的pingback 端口
//禁用XML-RPC的pingback接口 add_filter( 'xmlrpc_methods', 'remove_xmlrpc_pingback_ping' ); function remove_xmlrpc_pingback_ping( $methods ) { unset( $methods['pingback.ping'] ); return $methods; }
以上代码放到主题的functions.php文件即可。
二、修改.htaccess文件
1、加入以下代码:
# protect xmlrpc <Files xmlrpc.php> Order Deny,Allow Deny from all </Files>
2、还可以让访问转向其他网址:
# protect xmlrpc <IfModule mod_alias.c> Redirect 301 /xmlrpc.php http://baidu.com </IfModule>
三、修改服务器配置
1、nginx配置禁止访问该文件:
location =/xmlrpc.php{ deny all; }
2、Apache配置禁止访问该文件:
<IfModule mod_alias.c> Redirect 301 /xmlrpc.php http://baidu.com </IfModule>
通过以上几种方法都可以实现禁止xmlrpc.php恶意访问的目的,具体使用哪一种各位可以自己选择。
四、删除xmlrpc.php文件
如果不链接小程序、不离线发表文章,直接删除WordPress根目录的xmlrpc.php文件,稳妥点可以清空里面的内容,保留一个空文件,不会影响正常的WordPress运行。
另外每次更新完WP程序,不要忘记再进行一次删除操作。
最新评论
这篇文章写得深入浅出,让我这个小白也看懂了!
谢谢分享
域名CDN加速类型选择的什么类型?
好像很不错的材料
这招也不好使咋办啊
刚好公司要做培训,需要参考一下如何写,谢谢分享
可以可以
哪里下载呢