漏洞概要 关注数(24) 关注此漏洞
缺陷编号:wooyun-2015-0159503
漏洞标题:麦德龙奇葩设计导致全站用户相关信息泄露
相关厂商:metromall.cn
漏洞作者: userlxx
提交时间:2015-12-09 12:22
修复时间:2016-01-25 18:01
公开时间:2016-01-25 18:01
漏洞类型:未授权访问/权限绕过
危害等级:高
自评Rank:20
漏洞状态:厂商已经确认
漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 [email protected]
Tags标签: 无
漏洞详情
披露状态:
2015-12-09: 细节已通知厂商并且等待厂商处理中
2015-12-14: 厂商已经确认,细节仅向厂商公开
2015-12-24: 细节向核心白帽子及相关领域专家公开
2016-01-03: 细节向普通白帽子公开
2016-01-13: 细节向实习白帽子公开
2016-01-25: 细节向公众公开
简要描述:
麦德龙,业界良心厂商。
作为一个菜鸟挖的洞竟然送来了礼物,第一个礼物啊,感动的哭!于是又挖了挖以表感谢~~
详细说明:
漏洞有两处,配合起来可以控制全站用户账号:
(1) 正常情况下,后台根据请求的sessionID来查询用户信息;但是,如果sessionID不正确的时候,后台根据请求cookie中的CustomerID来查询信息。——这样可以遍历全站用户信息。
(2) 用户账户修改自身密码时不验证旧密码,且根据第一个漏洞,sessionID不正确时使用CustomerID来重置账户密码。——重置全站账户密码,并登陆任意操作。
1、正常情况下,后台根据请求的sessionID来查询用户信息:我的土豪账号。(查询个人信息为例 /account/accinfo.aspx);
2、修改CustomerID为27685(注册的另外一个账号),依然根据sessionID查询;
3、但是。。但是。。把sessionID改错后,程序就根据CustomerID来查询个人信息。
好机智的一个“容错”能力!!!真是佩服这设计。
4、这样,就可以轻易的遍历用户信息、订单信息。。等等
/account/accinfo.aspx ——查询“个人信息”
/account/orderlist.aspx ——查询“订单信息”
5、竟然有这么一个奇葩的漏洞,应该深入利用一下。立马想到重置账号密码,由此联想到登录后“修改密码”功能。
6、输入“原密码”,此时发送一个ajax请求验证旧密码是否正确,可篡改返回值绕过。
7、两次输入新密码,提交请求。
首先,发送验证旧密码请求/account/modifypwd.aspx,使用上一步方法绕过检查。
然后,发送重置密码的请求/account/modifypwd.aspx,携带旧密码和新密码。该死的是修改密码这个request不检查旧密码,直接重置密码。
8、由此,结合“奇葩cookie利用”漏洞,即可重置任意账户的口令。
以CustomerID=27026为例(订单遍历的时候看到她买过东西,所以就她了)
首先,重置CustomerID=27026的密码。
然后,查下27026的手机号(即登录用户名)是什么。
好,现在我们有27026的账户/口令了,登录瞅瞅吧~
9、用户账号都控制了,最基本是大量用户信息泄露。。另外,我可以为用户“到付”下单啦(我是雷锋)。。
当然,我什么都没有做!
漏洞证明:
如上。
修复方案:
1、cookie这个使用也太奇葩了。。
2、重置密码需要验证旧密码的,不能单独验证。
这回可以给20RANK了,谢啦~
或许可以再来一个礼物,我太贪得无厌了。。。
版权声明:转载请注明来源 userlxx@乌云
漏洞回应
厂商回应:
危害等级:高
漏洞Rank:18
确认时间:2015-12-14 09:24
厂商回复:
已确认
最新状态:
暂无