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