前言
为了更方便和各位小伙伴们进行技术交流,小弟使用WP来这一强大的博客系统来构建博客,同时购买了网上的收费模板MePalV2.3版,所以小伙伴们要继续支持小站哦,也不枉我的一番苦心呀。废话唠叨完了,那么开始我们今天的主题,WordPress MePal模板漏洞修复。
MePal模板是由90nl.com站长开发,集成了很多酷炫的功能,后台一键设置,很是方便,但是随着功能的增强,安全性也随之暴露了出来,经过了几个月的使用以及使用360的webscan扫描的结果,漏洞总结如下:
1、HTTP响应拆分漏洞修复
HTTP响应拆分漏洞(也叫CRLF注入攻击),CRLF其实就是回车换行的意思,在web渗透测试中我们赋予了它更多的意义,出现HTTP响应拆分漏洞的网站攻击者可能注入自定义HTTP头。例如,攻击者可以注入会话cookie或HTML代码。这可能会进行类似的XSS(跨站点脚本)、话固定漏洞或者恶意重定向。
MePal模板的增加了任意网址跳转功能,使用了MePal模板的网站,可以网站域名后面加入?mp=http://www.waitalone.cn/进行跳转,在URL中输入http://www.waitalone.cn/?mp=http://www.baidu.com/即可跳转到百度去,为了安全起见,函数默认情况下会判断是否有Refere值,有的话才可以跳转,否则会重定向到当前网站。但是我们知道Referer是可以伪造的,而且此跳转函数未对用户输入中的特殊字符进行替换,造成了CRLF漏洞,如下图:
存在问题的函数为redirect_comment_link函数,位于MePal主题目录下的functions.php文件中
function redirect_comment_link() { $redirect = $_GET['mp']; $host = $_SERVER['HTTP_HOST']; if ($redirect) { if (strpos($_SERVER['HTTP_REFERER'], get_option('home')) !== false) { header("Location: $redirect#from:$host"); exit; } else { header("Location:http://$host"); exit; } } }
$redirect变量获取后未进行任何过滤就进行了跳转,因此造成此漏洞,改为如下即可完成修复。
function redirect_comment_link() { $redirect = $_GET['mp']; $redirect = trim($redirect); $redirect = strip_tags($redirect,""); //清除HTML等代码 $redirect = str_replace("\t","",$redirect); //去掉制表符号 $redirect = str_replace("\r\n","",$redirect); //去掉回车换行符号 $redirect = str_replace("\r","",$redirect); //去掉回车 $redirect = str_replace("\n","",$redirect); //去掉换行 $redirect = str_replace(" ","",$redirect); //去掉空格 $redirect = str_replace("'","",$redirect); //去掉单引号 $host = $_SERVER['HTTP_HOST']; if ($redirect) { if (strpos($_SERVER['HTTP_REFERER'], get_option('home')) !== false && strpos($redirect,'http') !== false) { header("Location: $redirect#from:$host"); exit; } else { header("Location:http://$host"); exit; } } }
str_replace你也可以改成ereg_replace,不想改的直接复制上面代码即可。
2、跨站脚本攻击漏洞
存在XSS漏洞的文件是MePal模板的公共侧边栏"说/统/登"小工具,只要使用此小工具的网站都存在XSS跨站脚本攻击漏洞。
验证方法,开启说统登小工具,然后访问如下URL,弹出123456说明存在XSS漏洞,未启用此工具的不受影响。
http://www.waitalone.cn/">/
存在问题的页面为MePal/includes/widget/widget_logintalk.php,具体代码为:
很明显,输出的时候,未进行任何转义导致的XSS漏洞,更改代码为如下即可修复。
使用htmlspecialchars对特殊字符转义以后再输出到浏览器即可。
另外一处XSS漏洞存在于奶酪直链解析工具download.php,并且V3.1版之前的都存在XSS漏洞。
漏洞代码:
修改为如下即可:
3、发现install文件
这个是最好解决的了,删除wp-admin目录下的install.php文件或者重命名即可。
4、任意跳转漏洞
这个是网站需要的东西,而且验证了Referer,如果想任意跳转的话,必须在提交HTTP请求包的时候加上Referer值才行,这个其实没有多大意义,可以不用在意的。。
以上便是MePal模板的所有漏洞及修复方法,由于小站带宽有限,我只是使用的webscan.360.cn最小资源消耗模式检测的,可能会有些漏洞没有检测到,如果你发现了MePal模板的其它漏洞,请在此留言,我会修复的。下面看看修复完成后的扫描效果。
最后说一下360web安全扫描的得分图片是可以伪造的,大家看看我的得分。(纯属娱乐)
如果你也想伪造一下得分,点击下面的链接:
from www.waitalone.cn.thanks for it.
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论