【wordpress】站点360scan漏洞扫描修复记录

  • 事件摘要

    今日兴趣来潮,使用360网站安全对鄙人小站进行了一次小小检测,不巧还真爆出了几个警告漏洞,这对于博主来说,是个不小的问题;想象一下自己辛苦积累,无数次修改,无数的经验和智慧结晶,放在自己精心搭建的小站上,如果小站有几个后门或是漏洞,心一定是悬着的;

  • 修复过程

①、我们先来看一下,360究竟报了哪些漏洞:

存在漏洞页面 漏洞名称
http://oxblog.cn/、、、、

[警告]异常页面导致服务器路径泄漏

http://oxblog.cn/、、、、

[警告]发现install.php文件

http://oxblog.cn

[轻微]Cookie没有HttpOnly标志

http://oxblog.cn/、、、、/、、、、/、、、、

[轻微]发现敏感名称的目录漏洞

http://oxblog.cn/、、、、/、、、、/、、、、

[轻微]发现敏感名称的目录漏洞

http://oxblog.cn/TRACE_test

[轻微]发现服务器启用了TRACE Method

http://oxblog.cn:80|http//ip:80

[轻微]网站可以用IP直接访问

注意

如上,360一共曝出了7个漏洞问题,其中两个警告漏洞,接下来,我们一一解决他们;

②、[警告]异常页面导致服务器路径泄漏:

这个问题主要是由于某个路径下的页面直接访问有问题,从而php报错,某某文件中某行的错误;这里通常会粘贴此文件的整个绝对路径,从而让不友好从业者从中得知站点在系统的位置;

修复方法

如上,针对apache/php的环境,一共两种方法;

第一种,直接修改php和apache的配置文件,关闭php的错误消息,如下:

修改php.ini中的配置行: display_errors = off
修改httpd.conf/apache2.conf中的配置行: php_flag display_errors off

第二种,直接在报告存在漏洞的文件中加入代码关闭php的错误消息,如下:

<?php  !--这里要在php里面添加下面一行代码;
ini_set("display_errors",false);

③、[警告]发现install.php文件:

这个文件,一般存在站点的根目录下,特别是wp这种集成包需要安装的,我们部署站点时,都要都用这个install.php文件进行安装;如果已经安装好的站点,再次执行,很可能就会覆盖安装,存在一定危险性和误操作的风险;不过在wordpress里面这个问题其实不用担心,首先安装需要知道数据库的信息,其次如果已经安装成功的站点,install文件会检测然后提示已经安装了站点;

修复方法

针对安装文件,常用依然有两种;

第一种,直接重命名文件,这样找不到自然无从谈起安装了,当然前提是站点禁止罗列目录文件

[root@oxblog htdocs]# mv install.php 123.php

第二种,install文件头部添加自动跳转标签,使其失去安装功能;

<meta http-equiv=refresh content="0;url=http://oxblog.cn" />
漏洞延伸

如上,我们提到,站点禁止罗列目录,这其实也是一个高风险漏洞;

apache禁止访问网站目录:

我们知道站点直接访问目录,如果目录下有index.php、index.html文件,则读取此文件,如果没有默认情况下,会罗列此目录下的所有子目录和文件,如此严重性你会看不出来?

解决方法目前博主知道的有三种:

第一种,如上,我们直接在目录下面添加个index.html文件,然后插入自动转发代码:

<meta http-equiv=refresh content="0;url=http://oxblog.cn" />

第二种,修改apache配置文件httpd.conf,禁止访问网站目录

#Options Indexes FollowSymLinks
Options FollowSymLinks
!--如上找到第一行注释掉,添加第二行代码--!

(其实就是将Indexes去掉,Indexes表示若当前目录没有index.html就会显示目录结构。)

第三种,针对目录进行限制,如只允许本地主机访问指定目录(下面会有介绍)

④、[轻微]Cookie没有HttpOnly标志:

这个其实不是那么严重了,有关cookie的设置,和HttpOnly标签的定义,本博了解有限;

可参考:使用HttpOnly提升Cookie安全性

在这里,博主也有操作,但是最终好像效果不是很明显;

!--依据参考报文,本博主检索了setcookie--!
[root@oxblog jinsomB]# grep -ri setcookie ./ | grep false
./functions/extend.php: setcookie('bigfa_ding_' . $id, $id, $expire, '/', $domain, false);
!--我修改了它,把false改成了true,其他地方还有个ajax的php文件有类似的配置,但没有最后一参数--!
!--重启服务后,再次扫描还是发现了这个漏洞,索性没招了,有大神看到,感谢支招啊!

⑤、[轻微]发现服务器启用了TRACE Method:

有关trace method的说法可参考:TRACE Method 网站漏洞

这里本博主也是依此做了如下修改:httpd.conf

!--首先我确定了配置文件此模块有注释符号并未激活--!
#LoadModule rewrite_module modules/mod_rewrite.so
!--于是直接在文本最后添加如下一行,关闭站点的trace功能--!
TraceEnable off

⑥、[轻微]网站可以用IP直接访问:

这里博主采用了虚拟机主机的相关配置,直接看配置:(httpd.conf)

<VirtualHost *:80>
 DocumentRoot /、、、、、、
 ServerName ip*.*.*.*
 <location />
 order allow,deny
 deny from all
 </location>
</VirtualHost>
<VirtualHost *:80>
 DocumentRoot /、、、、、、
 ServerName oxblog.cn
</VirtualHost>

!--其实就是检查主机域名,如果是ip直接访问,拒绝;如果是域名则正常访问--!

⑦、[轻微]发现敏感名称的目录漏洞:

把这个漏洞,放在最后,其实它也不算是漏洞,我们知道站点资源一般都分类放到不同目录中;

这些目录名称一般都含有admin、upload、source、类似的字符串,这是不可避免的;

而类似这样的目录,被不友好从业者发现,可能就会心起歪念针对性的搞事情;

思考

如何解决呢?在起初写代码的时候,取个比较没有意义的目录名称就好了;

但是对于我们这些不会写代码,直接使用模板如wp类似的源码包安装的站长来说,如果批量修改,显然是不合适的,因为你修改了,就要修改所有文件中调用的目录路径了;

不过我们还是要有些作为的,删除没有用的,不重要的可以忽略,重要的详细针对目录文件加以权限的限制;

1)、比如我们对wp-admin目录和主题的admin目录,加以只允许特定ip访问;

我们知道admin目录一般都是后台管理目录,像我们常做的后台登陆加上验证码限制,防止暴力破解

如果我们直接限制只允许局域网、本机、或站长的管理ip访问,那不友好从业者也无从下手了;

具体操作

我们限制admin目录只允许局域网、本地ip、和博主工作出口ip访问:

<Directory "/、、、/、、、/、、、/、、、/admin">
Options All
AllowOverride None
Order Deny,Allow
Deny From all
Allow From 192.168.0.0/24
Allow From 127.0.0.1
Allow From x.x.x.x/32
</Directory>
除此之外,我们还可以做其它的限制: 【显示↓/↑隐藏】

(哈哈,就这么多了,不明白记得留言哦!)

Edit@bigmouth【原创博文】®【经验汇总】


原创文章,转载请注明:转自于公牛博客

本文链接地址:【wordpress】站点360scan漏洞扫描修复记录

14
祝福我们的祖国繁荣昌盛
  • 请尽情挥洒您的笔墨!