360安全扫描之WordPress 页面异常导致本地路径泄漏 的漏洞修补

5,161
360安全扫描之WordPress 页面异常导致本地路径泄漏 的漏洞修补
  • 4.40 / 5 5
4.40分(5票)
360安全扫描之WordPress 页面异常导致本地路径泄漏 的漏洞修补

今天头脑一热到360安全检测那里去为自己的网站进行安全扫描了一番。上次扫描还是一年前,当初扫描一个网站是 94 分,那时候还不懂代码,就这么挂着,被360 公开着。今天的扫描发现了两个漏洞,评分 91 。为了光鲜的 100 ,Jeff决定今个儿决定要解决了这些漏洞。

主题 index.php 文件的页面异常导致本地路径泄漏的漏洞修补

其中一个漏洞是页面异常导致本地路径泄漏,就是打开 http://域名/wp-content/themes/主题/ 这个路径会跳出个错误提示,然后这个提示就会泄露你的服务器路径。

如下面提示文字:

Fatal error: Call to undefined function get_header() in /网站根路径/XXX/wp-content/themes/主题/ on line 1

如图:

360网站扫描

解决方法:

WordPress 话一般都是架设在 PHP+Apache 服务器上,可以通过修改php脚本、配置php.ini以及httpd.conf中的配置项来禁止显示错误信息。

1、修改php.ini中的配置行: display_errors = off

2、修改httpd.conf/apache2.conf中的配置行: php_flag display_errors off

3、修改php脚本,增加代码行: ini_set(‘display_errors’, false);

不过的话虚拟主机就没有这个份了,唉,谁叫咱寄人篱下呢?咱有资本了一定买个独立的VPS,哼!

上面不能修改的话,对于WordPress ,可以采用以下代码屏蔽错误信息的显示。在主题目录下的 index.php 文件最开头加入以下代码:

<?php error_reporting(0); ?>

高级一点可以这样,实现的功能是访问http://域名/wp-content/themes/主题/ 这个路径自动跳转到首页:

1
2
3
4
5
6
7
<?php ini_set('display_errors', 0); ?>
<?php if (function_exists('get_header')) {
	get_header();
}else{
    header("Location: http://" . $_SERVER['HTTP_HOST'] . "");
    exit;
}; ?>

7.24更新:衡天主机的蓝冰大哥给我带来了另外一种方法:

在 wp-content/themes 中设置 .htaccess 代码,代码如下:

1
2
3
4
deny from all
<FilesMatch "\.(ico|pdf|jpg|jpeg|png|gif|swf|css|js|zip|rar|txt|woff)$">
Allow from All
</FilesMatch>

表示只允许列表中的文件类型访问,其他的不能访问,如PHP。

其他文件的页面异常导致本地路径泄漏的漏洞修补

如果使用WordPress ,可能会有其他文件也会报为漏洞,比如

/wp-includes/user.php

除了方法如上面一样,通过修改php脚本、配置php.ini以及httpd.conf中的配置项是一劳永逸,也可以在该php文件最开头前加入:

<?php error_reporting(0); ?>

晒图

解决后Jeff 用360 的重新扫描,呵呵,100 分了,晒一下:

360网站扫描100分

360网站扫描100分

虽然网站安全问题还可能存在,虽然说360 流氓不可信,但老实说人家做得确实不错。

WordPress 安全性就是好,至少比asp 的网站程序强多了。

喵~本文目前有3条留言,欢迎发表评论!

  1. 传说中的沙发
    :

    “主题 index.php 文件的页面异常导致本地路径泄漏的漏洞修补”→“解决方法”第一句:“WordPress 话一般都是架设在 PH+Apache 服务器上”还有个“P”呢

    [回复]
    • 🙂 谢谢!你看得太仔细了!

      [回复]
    • :

      为什么我的网站加了后无效呢?求大师指点迷津

      [回复]

打破沉默,我来发表评论鸟~