阿里云提示 Didcuz memcache+ssrf GETSHELL漏洞 修复方法
漏洞名称:Discuz memcache+ssrf GETSHELL漏洞补丁编号:10119187
补丁文件:source/function/function_core.php
补丁来源:云盾自研
漏洞描述:
Discuz存在SSRF漏洞,在配置了memcache的情况下,攻击者可以利用ssrf通过memcache中转,向磁盘上写入WEBSHELL恶意代码,从而造成数据库泄漏。任何的外部输入,包括memcache缓存都应该认为不可信,建议在任何从外部输入的数据都进行必要的转义和过滤,可禁用preg_replace /e代码执行。【注意:该补丁为云盾自研代码修复方案,云盾会根据您当前代码是否符合云盾自研的修复模式进行检测,如果您自行采取了底层/框架统一修复、或者使用了其他的修复方案,可能会导致您虽然已经修复了改漏洞,云盾依然报告存在漏洞,遇到该情况可选择忽略该漏洞提示】
方法一:
找到文件
source/function/function_core.php
搜索:
$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
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目录及文件(这是使用wdlinux面板的举例)
rm -rf /www/wdlinux/memcached
rm -rf /www/wdlinux/init.d/memcached
4、关闭memcached开机启动
chkconfig memcached off
5、把memcached移出开机启动
chkconfig --del memcached
页:
[1]