标题:Discuz uc.key泄露导致代码注入漏洞
描述:在Discuz中,uc_key是UC客户端与服务端通信的通信密钥,discuz中的/api/uc.php存在代码写入漏洞,导致黑客可写入恶意代码获取uckey,最终进入网站后台,造成数据泄漏。您也可以登录官方网站更新到最新版本解决。
文件:/api/uc.php
解决方案:
找到文件/api/uc.php 中的以下代码:(大概216行)
补丁前:
$configfile = substr($configfile, -2) == '?>' ? substr($configfile, 0, -2) : $configfile;
修改为:
$configfile = preg_replace("/define\('UC_API',\s*'.*?'\);/i", "define('UC_API', '".addslashes($UC_API)."');", $configfile);
延伸阅读:
科普一下:PHP addslashes() 函数
在每个双引号(")前添加反斜杠:
<?php $str = addslashes('Shanghai is the "biggest" city in China.'); echo($str); ?>
结果:Shanghai is the \"biggest\" city in China.
评论回复