首页 > Web安全防护 > discuz教程:阿里提示Discuz memcache+ssrf GETSHELL漏洞的解决方法

discuz教程:阿里提示Discuz memcache+ssrf GETSHELL漏洞的解决方法

2016年12月8日

discuz教程:阿里提示Discuz memcache+ssrf GETSHELL漏洞的解决方法
http://www.moke8.com/article-14352-1.html
很多同学肯定都收到阿里云提示discuz memcache+ssrf GETSHELL漏洞的相关说明,但购买阿里云云盾安骑士最少需要支付100块钱,下面我就在魔客吧给大家分享下如何来解决Discuz memcache+ssrf GETSHELL漏洞的问题。

该漏洞描述:discuz存在SSRF漏洞,在配置了memcache的情况下,攻击者可以利用ssrf通过memcache中转,向磁盘上写入WEBSHELL恶意代码,从而造成数据库泄漏

解决方法一:

利用云盾安骑士修复/source/function/function_core.php,用下面文件覆盖即可。
function_core.zip

 

也可以在1090行之后加入如下代码:

if(!empty($_G[‘setting’][‘output’][‘preg’][‘search’]) && (empty($_G[‘setting’][‘rewriteguest’]) || empty($_G[‘uid’]))) {
if(empty($_G[‘setting’][‘domain’][‘app’][‘default’])) {
$_G[‘setting’][‘output’][‘preg’][‘search’] = str_replace(‘\{CURHOST\}’, preg_quote($_G[‘siteurl’], ‘/’), $_G[‘setting’][‘output’][‘preg’][‘search’]);
$_G[‘setting’][‘output’][‘preg’][‘replace’] = str_replace(‘{CURHOST}’, $_G[‘siteurl’], $_G[‘setting’][‘output’][‘preg’][‘replace’]);
}

if (preg_match(“(/|#|\+|%).*(/|#|\+|%)e”, $_G[‘setting’][‘output’][‘preg’][‘search’]) !== FALSE) { die(“request error”); } $content = preg_replace($_G[‘setting’][‘output’][‘preg’][‘search’], $_G[‘setting’][‘output’][‘preg’][‘replace’], $content);
}

以下是魔客吧提供的云盾安骑士修复后的function_core.php文件,该文件在1089行加入了一段代码,具体见下载包

使用方法,下载文件解压后,上传覆盖/source/function/function_core.php,后台更新缓存即可。

解决方法二: 停止使用或卸载memcache

Windows下的Memcache卸载方法:

memcached -d stop

memcached -d remove

sc delete “Memcached Server”

linux memcached 卸载方法

1、首先查找你的memcached所在目录,可用如下命令查找名为memcached的文件夹
find / -name memcached
2、结束memcached进程
killall memcached
3、删除memcached目录及文件
rm -rf /www/wdlinux/memcached
rm -rf /www/wdlinux/init.d/memcached
4、关闭memcached开机启动
chkconfig memcached off
5、把memcached移出开机启动
chkconfig –del memcached

分类: Web安全防护 标签:
本文的评论功能被关闭了.