共计 1185 个字符,预计需要花费 3 分钟才能阅读完成。
导读 | 很多同学肯定都收到阿里云提示的 Discuz memcache+ssrf GETSHELL 漏洞的相关说明,阿里不断提醒就是为了想推广他们的什么云盾安骑士。那么,除了使用云盾安骑士之外,还有什么方法可以修复这个漏洞呢?下面就给大家讲述两种解决方法。 |
漏洞名称: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。
登录 discuz 管理后台 - 全局 - 性能优化 - 内存优化,查看网站支不支持 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