0%

网站被黑了

事件

上班无暇照料网站,今天XH发微信说网站登录不上了。打开一看,居然被重定位到了一些不可描述页面:

问题查找经过

首先分别做了以下检查:

  • 登录阿里云后台查看域名解析,不存在被改写情况
  • 登录到服务器查找主题页面被修改情况,也未见修改
  • 修改数据库,禁用所有插件,并删除掉所有页面缓存,仍热有此问题

后来根据重定向到的页面 setforconfigplease.com,到万能的Google找到了问题原因

问题原因

简言之,网站的如下两个设定直接被改写成了黑客想要重定向的页面。

个人后台密码一直设置的非常严,且数据库也保护较好,为何会有设定被改的现象?Google说,最新的Easy WP SMTP插件有权限检查不严漏洞,导致普通用户可以构造攻击数据来改写WP_OPTION。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
301 $is_import_settings = filter_input( INPUT_POST, 'swpsmtp_import_settings', FILTER_SANITIZE_NUMBER_INT );
302 if ( $is_import_settings ) {
303 $err_msg = __( 'Error occurred during settings import', 'easy-wp-smtp' );
304 if ( empty( $_FILES[ 'swpsmtp_import_settings_file' ] ) ) {
305 echo $err_msg;
306 wp_die();
307 }
308 $in_raw = file_get_contents( $_FILES[ 'swpsmtp_import_settings_file' ][ 'tmp_name' ] );
309 try {
310 $in = unserialize( $in_raw );
311 if ( empty( $in[ 'data' ] ) ) {
312 echo $err_msg;
313 wp_die();
314 }
315 if ( empty( $in[ 'checksum' ] ) ) {
316 echo $err_msg;
317 wp_die();
318 }
319 if ( md5( $in[ 'data' ] ) !== $in[ 'checksum' ] ) {
320 echo $err_msg;
321 wp_die();
322 }
323 $data = unserialize( $in[ 'data' ] );
324 foreach ( $data as $key => $value ) {
325 update_option( $key, $value );
326 }
327 set_transient( 'easy_wp_smtp_settings_import_success', true, 60 * 60 );
328 $url = admin_url() . 'options-general.php?page=swpsmtp_settings';
329 wp_safe_redirect( $url );
330 exit;

黑客正是如此更改了我的网站URL,导致访问被重定向到了他们指定的网址。

不仅如此,网站设置中的“允许用户注册”选项也被如此改写,而且被改成了用户注册默认即是管理员。这我才想起前两天收到邮件推送一个怪怪的新用户注册的邮件,由于当时正在工作给忽略了。T_T

解决办法

  1. 使用数据库命令先删除掉Easy WP SMTP插件(避免再次被人利用)
  2. 使用数据库命令更改siteurl和home回自己的网址https://www.l2h.site,此时就可以正常登录网站了
    • 注意你的网站如果启用了cache,需要先到后台删除例如autoptimize和wp super cache保存的cache
    • 如果你的数据库开启了redis缓存,也要清空redis缓存
  3. 到后台设置–>常规里,禁用掉新用户注册,以及更改新注册用户默认身份为普通身份

总结

以往对网站插件更新都非常勤快,觉得使用最新的就是最好。不过这次经历告诉自己,能不要更新就不要更新,除非有非用不可的功能。害得自己今晚很喜欢的健身课都没去上。以上。