导读 | 很多同学肯定都收到阿里云提示的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。
登录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
原文来自:
本文地址://lrxjmw.cn/discuz-memcachessrf-getshell.html编辑:薛鹏旭,审核员:逄增宝
Linux大全:
Linux系统大全: