比亚迪迪粉汇重置任意用户密码包括管理员账号(机智的分析思路)

漏洞概要

缺陷编号:WooYun-2015-0130081

漏洞标题:比亚迪迪粉汇重置任意用户密码包括管理员账号(机智的分析思路)

相关厂商:bydauto.com.cn

漏洞作者:纳米翡翠

提交时间:2015-07-29 10:03

公开时间:2015-09-13 15:06

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

危害等级:高

自评Rank:20

漏洞状态:厂商已经确认

Tags标签:

漏洞详情

披露状态:

2015-07-29: 细节已通知厂商并且等待厂商处理中
2015-07-30: 厂商已经确认,细节仅向厂商公开
2015-08-09: 细节向核心白帽子及相关领域专家公开
2015-08-19: 细节向普通白帽子公开
2015-08-29: 细节向实习白帽子公开
2015-09-13: 细节向公众公开

简要描述:

从来没要过20rank,这次要一个吧,因为用户量之大,泄漏利用成本之低,方式之简单

详细说明:

59万迪粉我来了

漏洞证明:

时间不早了,不说废话,直接入题1.打开迪粉汇http://club.bydauto.com.cn/portal.php2.点击登录-->忘记密码或者直接访问以下链接http://webcasqa2.byd.com.cn/sso/member.php?mod=lostpasswd用户名输入admin输入验证码

说到验证码,这里小小吐槽一下,验证码放在cookie里面不是可以直接爆破了吗?3.显示出admin用户的邮箱,虽然打了码,但是在cookie里面又一览无余。

这段看似乱七八糟的东西只是做了一个url编码,解码后如下:a:5:{s:6:"mobile";s:0:"";s:5:"email";s:19:"[email protected]";s:8:"password";s:32:"b08bf72c18097d850930fa9b3abe660c";s:8:"username";s:5:"admin";s:3:"uid";s:1:"1";}貌似连用户的密码一起返回了,不过md5加了盐值,破解不是很容易,但感觉不应该返回密码数据4.下一步伪造邮箱,让邮箱验证发到指定的邮箱里面

这里有点小插曲,就是伪造邮箱的长度一定要和用户自己邮箱的长度一样,否则发送不成功,我也是偶然发现的(这里就是bug根源)[email protected]om替换之

成功截获邮件

访问里面的url,直接重置admin密码

访问后台看看

到了后台拿个uc key 上传个shell很容易的事情,就不演示了,只为说明问题严重性.说声抱歉,admin的密码改成bydauto了,请修改。

修复方案:

逻辑控制

漏洞回应

厂商回应:

危害等级:高

漏洞Rank:20

确认时间:2015-07-3015:05

厂商回复:

感谢您对比亚迪的关注及测试,因返回用户信息并存储在COOKIE,且在发邮件时并未做二次验证导致该漏洞的产生。另外,验证码没有加密,存在用户密码被穷举爆破的可能性。目前漏洞我们已经修复,谢谢!

最新状态:

暂无

评价

  1. 2010-01-01 00:00 Burn Egg 白帽子 | Rank:72 漏洞数:6)

    占座,洞主演义第一个。厂商回复看着露得不少啊

  2. 2010-01-01 00:00 Seven.Sea 白帽子 | Rank:44 漏洞数:5)

    洞主演义过来的=.=围观思路.

  3. 2010-01-01 00:00 进击的zjx 白帽子 | Rank:259 漏洞数:20)

    挖洞思路的确厉害!不过程序员的编码思路更厉害!233

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

    求教这个验证邮箱长度是几个意思?为什么会想到验证长度?