速8酒店某接口未授权访问(卡号+实名+密码爆破)

漏洞概要

缺陷编号:WooYun-2015-097778

漏洞标题:速8酒店某接口未授权访问(卡号+实名+密码爆破)

相关厂商:速8酒店

漏洞作者:Vig0r

提交时间:2015-02-19 20:45

公开时间:2015-04-05 20:46

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

危害等级:高

自评Rank:16

漏洞状态:厂商已经确认

Tags标签:

漏洞详情

披露状态:

2015-02-19: 细节已通知厂商并且等待厂商处理中
2015-02-25: 厂商已经确认,细节仅向厂商公开
2015-03-07: 细节向核心白帽子及相关领域专家公开
2015-03-17: 细节向普通白帽子公开
2015-03-27: 细节向实习白帽子公开
2015-04-05: 细节向公众公开

简要描述:

软件厂商注重的是软件安全,酒店企业应重视客户隐私和白帽子的努力顺祝wooyun、super8新年快乐

详细说明:

2014-01-26 22:14 飞扬风发布了速8酒店某处泄漏大量用户资料及订单信息

厂商忽略,后乌云补分 rank 13(提交前反查信息发现)白帽子飞扬风从APP分析的角度,使用burp进行抓包改包,由于burp编码的原因汉字显示不正常,未引起厂商重视。时隔一年,我通过百度无意间搜索到速8酒店一接口:

通过对速8酒店各接口分析,发现SOAP接口未验证权限,也未设置内部访问,导致未授权访问泄露用户卡号,实名,获得卡号后可对密码进行爆破。说明及演示如下:

速8酒店的说明做的真的不错,文档全中文,说明详细。最底部:getCustInfo根据会员卡号查询会员实体接口(按手机号/会员卡号验证登录密码,成功后返回会员卡号,会员姓名,会员类型,可享受会员价格)打开看看:

意思只要会员卡号正确就能返回卡号,会员姓名文档里还有示例真心不错,那就用get方法测试一下,简单写了个python脚本:

卡号设置从600130919开始,简单说明一下我没有速8的会员卡,百度得到这张图片

600110882,测试的时候遍历了9999张,选这个开始是为了演示爆破(卡号+实名 为了演示只显示前2),程序运行结果:

有了卡号,我们就可以去爆破密码,还是用脚本测试接口地址

接口说明:CustLoginEx会员登录返回会员实体接口(按手机号/会员卡号验证登录密码,成功后返回会员卡号,会员姓名,会员类型,可享受会员价格)

脚本如下(假设密码为弱口令123456,只是简单写了一下,python也可以从文件读取密码,这里仅作演示):

测试结果如下(脚本过于简陋,只为说明问题,见谅):

卡号600130920显示 <IsError>false</IsError> 正常 其余显示 <IsError>true</IsError>从返回结果看到 卡号600130920 密码123456 正确用这个卡号密码在网站上登陆一下

正确 身份证号,手机号也出来了 开房的情况就不做演示了由于精力有限,如果能对卡号进行大范围遍历,理想状态下能得到全部会员卡号及实名,爆破时可以修改程序,利用遍历出的卡号+脚本读取的弱口令密码文件会有更大收获。

漏洞证明:

如上所示

修复方案:

内部访问鉴权 会员卡号不要全数字 最好别致点

漏洞回应

厂商回应:

危害等级:高

漏洞Rank:10

确认时间:2015-02-25 15:14

厂商回复:

谢谢您的提醒,我们会及时修复

最新状态:

暂无

评价

  1. 2010-01-01 00:00 llkoio 白帽子 | Rank:15 漏洞数:1)

    这种传统行业,感觉都不太重视安全。

  2. 2010-01-01 00:00 S4M 白帽子 | Rank:0 漏洞数:0)

    硬中。。。。