Discuz!官方免费开源建站系统

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

[求助] Discuz verser小于x3.3 memcache+ssrf GETSHELL 漏洞修复

[复制链接]
jiangchuankyo 发表于 2018-8-17 15:18:47 | 显示全部楼层 |阅读模式
本帖最后由 jiangchuankyo 于 2018-8-17 15:28 编辑

source/function/function_core.php,网上流传的那个修复代码有问题, 模仿官方3.4写的, 但preg_replace_callback不像preg_replace那样支持数组, 不支持/e, 不支持\\1,所以须改成下面的代码: // preg_replace_callback不支持数组换为foreach, 去掉了末尾的/e, \\1替换成传入的匹配数组$matches[1]
搜索:
  1. $content = preg_replace($_G['setting']['output']['preg']['search'], $_G['setting']['output']['preg']['replace'], $content);
复制代码

替换为:
foreach($_G['setting']['output']['preg']['search'] as $key => $value) {
$content = preg_replace_callback(preg_replace('#e$#', '', $value), create_function('$matches', 'return '.preg_replace("#'\\\+([0-9]+)'#", '$matches[${1}]', $_G['setting']['output']['preg']['replace'][$key].';')), $content);
}

民审大大 发表于 2018-8-17 16:23:56 | 显示全部楼层
preg_replace_callback是为了兼容PHP7
回复

使用道具 举报

 楼主| jiangchuankyo 发表于 2018-8-17 17:06:35 | 显示全部楼层
民审大大 发表于 2018-8-17 16:23
preg_replace_callback是为了兼容PHP7

我的是3.2, 是2016年8月份在论坛程序发布那个官方帖子里下的3.2 GBK, 是不是原始就已经修复那个memcache漏洞了, 不用再手动修复?
回复

使用道具 举报

crx349 发表于 2018-8-18 13:44:40 | 显示全部楼层
感谢分享了~ 兼容php7~
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|Discuz! 官方站 ( 皖ICP备16010102号 )star

GMT+8, 2024-11-27 06:23 , Processed in 0.015116 second(s), 3 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表