### 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'])反序列化,所以我们就要填入序列化的值:...
### 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']代入时,需要进行检查。