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

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

缺陷编号:wooyun-2015-0134156

漏洞标题:BUS365中国公路客票网任意密码重置漏洞+任意邮箱绑定+用户密码hash泄漏

相关厂商:cncert国家互联网应急中心

漏洞作者: crackme

提交时间:2015-08-17 16:02

修复时间:2015-10-03 10:30

公开时间:2015-10-03 10:30

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

危害等级:高

自评Rank:15

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

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2015-08-17: 细节已通知厂商并且等待厂商处理中
2015-08-19: cncert国家互联网应急中心暂未能联系到相关单位,细节仅向通报机构公开
2015-08-29: 细节向核心白帽子及相关领域专家公开
2015-09-08: 细节向普通白帽子公开
2015-09-18: 细节向实习白帽子公开
2015-10-03: 细节向公众公开

简要描述:

BUS365中国公路客票网密码找回和邮箱绑定功能存在逻辑漏洞。在已知用户名(手机号或邮箱)的前提下可以获取其id\username\passwordhash的信息,从而任意重置密码和绑定的邮箱。

详细说明:

0x00
典型密码重置漏洞,乌云上已经有很多类似的漏洞了。
0x01 从一个奇葩的ajax讲起
在chrome console的network栏中看到一个奇葩的ajax GET请求,从js代码中看是用来获取用户昵称的。这个直接在浏览器中打开ajax请求的URL,如下:

Screen Shot 2015-08-14 at 3.03.28 PM.png


可以看到id信息和一个明晃晃的password信息,不过password应该是hash加salt了,没有解出来。
在URL请求参数改成其他的用户名,也可以返回相应的结果(如果password没加salt能解出来的话问题会很严重)
这里我用自己的邮箱注册一个账号,该请求有如下返回

Screen Shot 2015-08-14 at 3.04.39 PM.png


下文为方便叙述,将这两个帐号简单称为手机账号和邮箱帐号
0x02 尝试SQL注入失败后转而寻找逻辑漏洞,以重置密码入手。
使用手机帐号进行密码找回。
输入手机号,选择邮箱找回

Screen Shot 2015-08-14 at 3.38.13 PM.png


Screen Shot 2015-08-14 at 3.39.30 PM.png


手机帐号对应的邮箱会收到6位验证码,输入之后进行修改密码界面。

Screen Shot 2015-08-14 at 3.40.02 PM.png


输入aaaaaa作为密码,使用burpsuite代理拦截

Screen Shot 2015-08-14 at 3.40.29 PM.png


可以看到原本手机账号对应的ID和用户名,根据前面那个泄漏ID信息的URL的返回结果,可在已知用户名的情况下获取到ID,这里将ID和用户名改成邮箱账号对应的值。发送HTTP请求。
可以看到修改成功提示。

Screen Shot 2015-08-14 at 3.41.09 PM.png


接下来使用aaaaaa作为邮箱账号的密码登录,成功。
0x03 现在假设开发人员已经修复了任意密码重置的漏洞,还能否修改别的人密码呢?可以
使用上述类似手法可以任意修改其他帐号的绑定邮箱。
使用手机帐号登录后,点击“会员安全”>“修改绑定邮箱”

Screen Shot 2015-08-14 at 4.31.12 PM.png


点击获取校验码,burpsuite拦截

Screen Shot 2015-08-14 at 4.28.28 PM.png


可以看到手机帐号的用户名ID,修改为邮箱用户的用户名ID提交。
邮箱会正常收到验证码,填入提交再次使用burpsuite拦截。
这个请求的ID也修改成邮箱用户的ID

Screen Shot 2015-08-14 at 4.37.24 PM.png


提交请求,返回修改成功提示。
此时登录邮箱账号可以看到绑定邮箱已变(原来应该是139邮箱)

Screen Shot 2015-08-14 at 3.13.30 PM.png


绑定邮箱修改后,则可以正常重置密码了。

漏洞证明:

见上

修复方案:

1、ajax请求返回的password hash虽然目前没有发现反解或者构造碰撞的方法,但依然不建议直接泄漏给用户。
2、密码重置功能严格校验邮箱、验证码、ID三者的匹配关系,邮箱收到的验证码应该只能用于修改与邮箱绑定的帐号(手机重置请自测)
3、邮箱绑定则属于平行越权操作,请校验会话,保证会话中的用户只能修改自己帐号的邮箱

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


漏洞回应

厂商回应:

危害等级:高

漏洞Rank:10

确认时间:2015-08-19 10:29

厂商回复:

CNVD确认并复现所述情况,已由CNVD通过网站管理方公开联系渠道向其邮件通报,由其后续提供解决方案并协调相关用户单位处置。

最新状态:

暂无