导读 很多同学肯定都收到阿里云提示的Discuz memcache+ssrf GET漏洞的相关说明,阿里不断提醒就是为了想推广他们的什么云盾安骑士。那么,除了使用云盾安骑士之外,还有什么方法可以修复这个漏洞呢?下面就给大家讲述两种解决方法。

漏洞名称:Discuz memcache+ssrf GETSHELL漏洞

漏洞类型:Web-CMS漏洞

漏洞描述:Discuz存在SSRF漏洞,在配置了memcache的情况下,攻击者可以利用ssrf通过memcache中转,向磁盘上写入WEBSHELL恶意代码,从而造成数据库泄漏。任何的外部输入,包括memcache缓存都应该认为不可信,建议在任何从外部输入的数据都进行必要的转义和过滤,可禁用preg_replace /e代码执行。

解决方法一

打开/source/function/function_core.php

搜索如下代码:(大概在文件的1089行左右)

$content = preg_replace($_G['setting']['output']['preg']['search'], $_G['setting']['output']['preg']['replace'], $content);

在上面加入(看清楚一定是上面)如下代码:

if (preg_match("(/|#|\+|%).*(/|#|\+|%)e", $_G['setting']['output']['preg']['search']) !== FALSE) { die("request error"); }

修改完成之后替换掉服务器上的文件。

解决方法二

停止使用或卸载memcache。

停止使用memcache

登录discuz管理后台-全局-性能优化-内存优化,查看网站支不支持memcache,以及有没有开启,假如开启的话就关闭。

卸载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

原文来自:

本文地址://q13zd.cn/discuz-memcachessrf-getshell.html编辑:薛鹏旭,审核员:逄增宝

Linux大全:

Linux系统大全:

红帽认证RHCE考试心得: