WordPress MePal模板漏洞修复指南

独自等待 2017年5月10日20:37:46评论393 views字数 2011阅读6分42秒阅读模式

前言

为了更方便和各位小伙伴们进行技术交流,小弟使用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漏洞,如下图:

HTTP响应拆分漏洞

HTTP响应拆分漏洞

存在问题的函数为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跨站脚本攻击科普

存在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安全扫描的得分图片是可以伪造的,大家看看我的得分。(纯属娱乐)

扫描结果

如果你也想伪造一下得分,点击下面的链接:

点我伪造360得分



from www.waitalone.cn.thanks for it.

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
独自等待
  • 本文由 发表于 2017年5月10日20:37:46
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   WordPress MePal模板漏洞修复指南https://cn-sec.com/archives/50198.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息