关于Discuz memcache/ssrf GETSHELL漏洞的修复方案
Discuz存在SSRF漏洞,在配置了memcache的情况下,攻击者可以利用ssrf通过memcache中转,向磁盘上写入WEBSHELL恶意代码,从而造成数据库泄漏。
解决办法:
找到论坛安装目录/source/function/function_core.php,在里面添加代码如下面1089行所示:
1074 function output_replace($content) {
1075 global $_G;
1076 if(defined(‘IN_MODCP’) || defined(‘IN_ADMINCP’)) return $content;
1077 if(!empty($_G[‘setting’][‘output’][‘str’][‘search’])) {
1078 if(empty($_G[‘setting’][‘domain’][‘app’][‘default’])) {
1079 $_G[‘setting’][‘output’][‘str’][‘replace’] = str_replace(‘{CURHOST}’, $_G[‘siteurl’], $_G[‘setting’] [‘output’][‘str’][‘replace’]);
1080 }
1081 $content = str_replace($_G[‘setting’][‘output’][‘str’][‘search’], $_G[‘setting’][‘output’][‘str’][‘replace’] , $content);
1082 }
1083 if(!empty($_G[‘setting’][‘output’][‘preg’][‘search’]) && (empty($_G[‘setting’][‘rewriteguest’]) || empty($_G[‘uid’]) )) {
1084 if(empty($_G[‘setting’][‘domain’][‘app’][‘default’])) {
1085 $_G[‘setting’][‘output’][‘preg’][‘search’] = str_replace(‘\{CURHOST\}’, preg_quote($_G[‘siteurl’], ‘ /’), $_G[‘setting’][‘output’][‘preg’][‘search’]);
1086 $_G[‘setting’][‘output’][‘preg’][‘replace’] = str_replace(‘{CURHOST}’, $_G[‘siteurl’], $_G[‘setting’ ][‘output’][‘preg’][‘replace’]);
1087 }
1088
1089 if (preg_match("(/|#|\+|%).*(/|#|\+|%)e", $_G[‘setting’][‘output’][‘preg’][‘search’]) !== FALSE) { die("request error"); }
1090
1091 $content = preg_replace($_G[‘setting’][‘output’][‘preg’][‘search’], $_G[‘setting’][‘output’][‘preg’][‘replac e’], $content);
1092 }
保存文件。
声明: 除非转自他站(如有侵权,请联系处理)外,本文采用 BY-NC-SA 协议进行授权 | 嗅谱网
转载请注明:转自《关于Discuz memcache/ssrf GETSHELL漏洞的修复方案》
本文地址:http://www.xiupu.net/archives-7103.html
关注公众号:
微信赞赏
支付宝赞赏