Discuz X3.2的milu_seotool插件存在本地文件包涵漏洞

2016-01-13T00:00:00
ID SSV:90389
Type seebug
Reporter kikay
Modified 2016-01-13T00:00:00

Description

0x01漏洞简介

Discuz X3.2的milu_seotool插件存在本地文件包涵漏洞。

看见木有有个微信登陆功能,漏洞也出现在这里。无截断所以不鸡肋。

0x02漏洞分析

接下来看代码,文件在source\plugin\wechat\wechat.class.php:

``` static public function redirect($type) {

    global $_G;

    $hook = unserialize($_G['setting']['wechatredirect']);

    if (!$hook || !in_array($hook['plugin'], $_G['setting']['plugins']['available'])) {

        return;

    }

    include_once DISCUZ_ROOT . 'source/plugin/' . $hook['plugin'] . '/' . $hook['include'];

    if (!class_exists($hook['class'], false)) {

        return;

    }

    $class = new $hook['class'];

    if (!method_exists($class, $hook['method'])) {

        return;

    }

    $return = $class->$hook['method']($type);

    if($return) {

        return $return;

    }

}

``` 对discuz有了解的人都知道它的$_G这个变量,他的$hook怎么来的我就不多说了,if判断了$hook['plugin'] 所以$hook['plugin']必须是'wechat','pcmgr_url_safeguard','mobile'其中一个 至于$hook['include']嘛 你懂得~~~~,unserialize($_G['setting']['wechatredirect'])反序列化,所以我们就要填入序列化的值:

0x03漏洞证明

0x04修复方案

$hook['include']代入时,需要进行检查。