当前位置:WooYun >> 漏洞信息

漏洞概要 关注数(24) 关注此漏洞

缺陷编号:wooyun-2013-045388

漏洞标题:腾讯某信息泄露危及其下多个discuz!论坛数据

相关厂商:腾讯

漏洞作者: kobin97

提交时间:2013-12-09 15:40

修复时间:2014-01-23 15:40

公开时间:2014-01-23 15:40

漏洞类型:设计缺陷/逻辑错误

危害等级:高

自评Rank:20

漏洞状态:厂商已经确认

漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 [email protected]

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2013-12-09: 细节已通知厂商并且等待厂商处理中
2013-12-10: 厂商已经确认,细节仅向厂商公开
2013-12-20: 细节向核心白帽子及相关领域专家公开
2013-12-30: 细节向普通白帽子公开
2014-01-09: 细节向实习白帽子公开
2014-01-23: 细节向公众公开

简要描述:

又上班了,无意中发现一个腾讯某站点“奇怪”的信息泄露 + 某“奇怪的接口” + 各种强大的接口功能,危及论坛数据,可能可以拿shell。
危害性想说是其下所有dz论坛,不过没测试,不敢说全部,只能说多个~~~~

详细说明:

#1 “奇怪”的信息泄露
http://bbs.open.t.qq.com/uc_server/data/config.inc.php
php文件直接下载,这个怪现像,猜想是本想对 data 目录下,限制所有php文件执行,防止上传webshell,但想错了一点,就是这里有个重要的php配置文件,因此造成这个配置错误的信息泄露。
证明

1.jpg


#2 “奇怪”的接口
众所周知,这 uc_server/data/config.inc.php 配置文件是ucenter的重要配置文件,通过uckey,可以做很多事情,如直接备份UC数据库(包含用户名,密码等重要信息)。
但这处还有更丰富的内容

define('SUPERBBS_URL', 'http://admin.forum.discuz.qq.com/');
define('SUPERBBS_KEY', 'eb********1');
define('SUPERBBS_IP', '127.0.0.1');
define('CONFIG_TIMEOUT', 86400);
$domain = $_SERVER['HTTP_HOST'];
unset($_config);
if(strpos($domain, ':')) {
list($domain,) = explode(':', $domain);
}
$authkey = base64_encode(_authcode1(SUPERBBS_KEY, 'ENCODE', SUPERBBS_KEY, 300));
$config_prefix = $domain.'_';
$config_cache = UC_ROOT.'./data/'.$config_prefix.'config.inc.php';
if(file_exists($config_cache) && filemtime($config_cache) >= time() - CONFIG_TIMEOUT) {
include $config_cache;
} else {
$_get = dfopen1(SUPERBBS_URL . '/superbbs.php?mod=site_config_ucenter_server&domain=' . $domain . '&authkey=' . $authkey, '', '', '', '', SUPERBBS_IP);
$get = json_decode($_get);
if ($get->success) {
$data = $get->data;
$_ucconfig = unserialize(base64_decode($data));
} else {
echo 'Can not find site with domain ' . $domain;
exit;
}
file_put_contents($config_cache, "<?php \r\nif(!defined('IN_UC')) exit('Access Denied'); \r\n\$_ucconfig=".var_export($_ucconfig, true).';');
}


这个是腾讯通过获取UC配置的接口,猜想是他们为了方便管理所有dz站点而建造的,换句话说,通过这个接口,可以轻松获取腾讯所有dz站点uc的配置。
但腾讯也是对这个有所限制的,我们访问
http://admin.forum.discuz.qq.com/superbbs.php,会是直接 Forbidden
那么估计限制了访问IP。
但如果能获取其中一个论坛的shell,随即可以查询腾讯其它所有dz站点的ucenter配置?
#3 uc强大的接口
uc有很多接口,都很强大,如直接备份数据库接口 api/dbbak.php ,只要有key,就能备份和下载整站数据库。
ucenter的接口更加强大,知道ucenter的uckey即可以直接拿shell,不过腾讯在这方面也是早有知道,所以直接禁止了对ucenter的admin.php的访问。
Forbidden
You don't have permission to access /uc_server/admin.php on this server.
虽然这样,但还有很多方法获取子应用(论坛)的 uckey

2.jpg


获取dz论坛的 uckey有什么用?

@猪猪侠 的太多例子告诉我们,只要有 uckey,我就能给你一个webshell
同样,有uckey,也能直接下载整站数据库,还能做什么?
登陆任意用户、删除用户?功能还是很多的。

4.jpg


漏洞证明:

1.jpg

修复方案:

典型的配置错误 + 通用接口错误

版权声明:转载请注明来源 kobin97@乌云


漏洞回应

厂商回应:

危害等级:高

漏洞Rank:15

确认时间:2013-12-10 15:20

厂商回复:

非常感谢您的报告。这个问题我们已经确认,正在与业务部门进行沟通制定解决方案。如有任何新的进展我们将会及时同步。

最新状态:

暂无