蓝忧无泪 发表于 2017-3-26 19:36:42

阿里云提示 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]
查看完整版本: 阿里云提示 Didcuz memcache+ssrf GETSHELL漏洞 修复方法