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

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

缺陷编号:wooyun-2014-081836

漏洞标题:我是如何登录任意新浪微博用户的(王思聪微博演示)

相关厂商:新浪

漏洞作者: 五道口杀气

提交时间:2014-11-03 14:49

修复时间:2014-12-18 14:50

公开时间:2014-12-18 14:50

漏洞类型:命令执行

危害等级:高

自评Rank:20

漏洞状态:厂商已经确认

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

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

简要描述:

某漏洞shell --> 审核源码 --> 调用内部接口获取任意用户gsid --> 利用某技巧使用gsid生成SUB认证cookie --> 登陆任意微博用户(所有权限)

详细说明:

mask 区域
1.http://**.**.**/proc/woopasswd/index.phptype=des&do=decrypt&keyword=789%3Becho%20%22wooyun%20test%22


神器找到一个命令执行,拿下服务器,代码审核发现存在很多新浪手机版源代码,找到从内部接口获取gsid的文件:

mask 区域
*****/code/php/include/wap_c*****


function getWeibo**id($uid, $proj, $ivalue) 
{
if ( ! preg_match("/\d{5,10}/", $uid)) {
return false;
}
!$cip && $cip = WapTool::getClientIP();
$token = md5('dskjo&$R*(7623r' . $uid);
$url = WAPLOGIN_GETGSID_INNER_API. '?uid=%s&cip=%s&proj=%s&ivalue=%s&t=%s';
$url = sprintf($url, rawurlencode($uid), rawurlencode($cip), $proj, $ivalue, $token);
$rawRtn = WapTool::urlGetContents($url, 5, 10);
if ( PHP_INT_MAX == 2147483647 ) {
$rtn = json_decode(preg_replace('#(?<=[,\{\[])\s*("\w+"):\s*(\d{6,})(?=\s*[,\]\}])#si', '${1}:"${2}"', $rawRtn), true);
} else {
$rtn = json_decode($rawRtn, true);
}
return $rtn;
}


uid跟一串字符串组合成token之后请求内部接口会直接返回对应用户的gsid。
下面是请求王思聪微博返回的gsid图片:

gsid.png


后来测试发现gsid无法在手机版微博直接登录了,安装正常用户走了一遍发现采用SUB认证方式,再测试发现换成一个非智能手机的UA,gsid仍然可以登录,利用这个方法,即可登录任意用户的微博账号:

wsc.png


所有测试没有做破坏性试验,日志可查~
王思聪的gsid销毁一遍即可。

漏洞证明:

修复方案:

版权声明:转载请注明来源 五道口杀气@乌云


漏洞回应

厂商回应:

危害等级:高

漏洞Rank:18

确认时间:2014-11-03 19:13

厂商回复:

感谢这位安全研究员给我们提交的漏洞,请与我们联系讨论一下奖励。诚邀更多白帽子和我们一起保护新浪、微博的安全。 @王思聪 老公放心,这个漏洞我们1小时以内就迅速修复啦~没人能够再上你 啦!你是我的,么么哒~!

最新状态:

暂无