漏洞概要 关注数(24) 关注此漏洞
缺陷编号:wooyun-2015-0125060
漏洞标题:饿了么逻辑漏洞之免费吃喝不是梦
相关厂商:饿了么
漏洞作者: 计算姬
提交时间:2015-07-07 10:40
修复时间:2015-07-29 16:12
公开时间:2015-07-29 16:12
漏洞类型:设计缺陷/逻辑错误
危害等级:高
自评Rank:20
漏洞状态:厂商已经修复
漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 [email protected]
Tags标签: 无
漏洞详情
披露状态:
2015-07-07: 细节已通知厂商并且等待厂商处理中
2015-07-07: 厂商已经确认,细节仅向厂商公开
2015-07-17: 细节向核心白帽子及相关领域专家公开
2015-07-27: 细节向普通白帽子公开
2015-07-29: 厂商已经修复漏洞并主动公开,细节向公众公开
简要描述:
饿了么-中国最专业的网上订餐平台
详细说明:
自认为思路还是屌屌的,没见过类似的漏洞啊,能打雷么~
问题是在饿了么早餐的地方,饿了么早餐真心方便啊
早餐最近出了个活动,可以领10元抵用券
输入信息后,领取成功
这一步其实是收集信息,后面的一个请求才是真的申领红包抵用券的请求
测试发现,一个手机号只能领2个红包
于是就开始fuzz
1)正常情况,只能2次,无法多次获取红包
2)测试是否仅对phoneNo做校验,在手机号后面加字母测试
是可以发送成功的,只是因为手机号错误的原因,我们收不到短信
3)那么思路就来了,只要phoneNo每次不同,绕过服务端的校验,同时,该值作为发送短信的目标又是真实可达的,就好了
也就是说,服务端直接检验phoneNo是否超过2次,同时不经过处理,就直接丢给短信发送平台进行红包短信发送(这是我猜的)
最容易想到的就是手机号前面加86了
发送成功,手机也成功收到短信,这样一个手机号就有4个红包了
4)那再测试手机号前面加+86
手机木有收到短信,该方法无效
5)那再测试第一种手机号后面加非数字的情况
手机也木有收到短信,不过我自己手机测试,是可以发送成功的啊
如上图,自己测试,是能收到短信的,不知道平台为嘛不行
6)还是那样,只要phoneNo的值能让平台成功发送短信即可,那我又想到了使用小号
用的阿里的小号
成功收到小号转发过来的短信
这样结合上面的两个成功的方法,就可以获得8个红包啦~~
阿里小号每个月可以有3次免费临时小号的使用
那么就可以获得4*(1+3)=16个红包啦~
感觉红包应该够用了啊,但是我不是为了福利,是为了安全啊,继续看看还有没有其他问题
7)那继续测,想着手机群发的时候,貌似以逗号,分隔号码,测试下
手机没有收到短信,此时在这个点也fuzz的很长时间,没有用,,就不多说了
8)后来又想到分号;作为分隔
测试发现,只有分号前面的手机号可以收到短信,不过目的已经达到了,保持分号前面手机号不变,分号后面任意内容,即可无限制获取红包抵用券的短信
漏洞证明:
修复方案:
phoneNo的值要经过提纯再进入短信发送平台进行发送
版权声明:转载请注明来源 计算姬@乌云
漏洞回应
厂商回应:
危害等级:低
漏洞Rank:3
确认时间:2015-07-07 11:03
厂商回复:
漏洞已经确认,感谢你对饿了么安全的关注
最新状态:
2015-07-29:漏洞已修复。谢谢你们的关注。