api uc.php 漏洞,Discuz7.2及以下版本 /api/uc.php uc.key泄露导致代码注入漏洞补丁

这个漏洞已经在discuz! x1版本悄悄给补上了,但是7.2及以下含有uc接口的版本的均没有补。

当然,漏洞是依旧是鸡肋的,想要利用这个漏洞,必须满足两点条件:

1.必须知道UC_KEY,通常在配置文件里,或者ucenter的原始(没有经过修改的)数据库(应用)中;

2.配置文件config.inc.php必须可写。

一、漏洞代码:...

function updateapps($get, $post) {

global $_DCACHE;

if(!API_UPDATEAPPS) {

return API_RETURN_FORBIDDEN;

}

$UC_API = $post['UC_API'];

if(empty($post) || empty($UC_API)) {

return API_RETURN_SUCCEED;

}

$cachefile = $this->appdir.'./uc_client/data/cache/apps.php';

$fp = fopen($cachefile, 'w');

$s = "<?phprn ";

$s .= '$_CACHE[\'apps\'] = '.var_export($post, TRUE).";rn";

fwrite($fp, $s);

fclose($fp);

if(is_writeable($this->appdir.'./config.inc.php')) {

$configfile = trim(file_get_contents($this->appdir.'./config.inc.php'));

$configfile = substr($configfile, -2) == '?>' ? substr($configfile, 0, -2) : $configfile;

$configfile = preg_replace("/define('UC_API',s*'.*?');/i", "define('UC_API', '$UC_API');", $configfile);//这里的问题

if($fp = @fopen($this->appdir.'./config.inc.php', 'w')) {

@fwrite($fp, trim($configfile));

@fclose($fp);

}

}

global $_DCACHE;

require_once $this->appdir.'./forumdata/cache/cache_settings.php';

require_once $this->appdir.'./include/cache.func.php';

foreach($post as $appid => $app) {

if(!empty($app['viewprourl'])) {

$_DCACHE['settings']['ucapp'][$appid]['viewprourl'] = $app['url'].$app['viewprourl'];

}

}

updatesettings();

return API_RETURN_SUCCEED;

}

...

二、修复方法://将这段代码

$configfile = preg_replace("/define('UC_API',s*'.*?');/i", "define('UC_API', '$UC_API');", $configfile);

//更换成这段代码

$configfile = preg_replace("/define\('UC_API',\s*'.*?'\);/i", "define('UC_API', '".addslashes($UC_API)."');", $configfile);

三、补丁文件:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值