漏洞概要 关注数(24) 关注此漏洞
缺陷编号:wooyun-2014-074661
漏洞标题:陌陌科技一处验证码绕过
相关厂商:北京陌陌科技有限公司
漏洞作者: lijiejie
提交时间:2014-09-01 18:53
修复时间:2014-10-16 18:54
公开时间:2014-10-16 18:54
漏洞类型:设计缺陷/逻辑错误
危害等级:低
自评Rank:3
漏洞状态:厂商已经确认
漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 [email protected]
Tags标签: 无
漏洞详情
披露状态:
2014-09-01: 细节已通知厂商并且等待厂商处理中
2014-09-01: 厂商已经确认,细节仅向厂商公开
2014-09-11: 细节向核心白帽子及相关领域专家公开
2014-09-21: 细节向普通白帽子公开
2014-10-01: 细节向实习白帽子公开
2014-10-16: 细节向公众公开
简要描述:
陌陌的一处验证码绕过,一开始以为是big cake,后来测试发现利用有些鸡肋,后端服务器会封IP的
详细说明:
从http://www.immomogame.com/mmzb/ 下载陌陌争霸游戏的Android版,反编译之后在MDKWebLoginActivity.java中找到两个URL:
https://game.immomo.com/register/?action=loginHorizontalPage
https://game.immomo.com/register/?action=loginPage
登录错误两次之后页面会出现验证码,然而该验证码并不过期,可以反复提交,并且可以改变陌陌号和密码后再次提交,接口不带sign签名等额外的校验。
密文为一次MD5,由此可初步猜测,陌陌在数据库中保存了用户的明文密码,或一次MD5。
登录的POST请求为:
POST https://game.immomo.com/register/?action=login&uname= HTTP/1.1
username={陌陌号}&password={密文一次MD5}&appid=null&redirect_uri=null&sign=null&client=null&verifycode=ncp3
陌陌号是手机号码。
提交登陆请求时固定Cookie中的verify值,以及参数中的verifycode值即可。
初步猜测,后端是简单的对参数加盐MD5或多次MD5计算,最终对比计算结果和Cookie中verify的值是否匹配。
这样的验证码是可直接绕过的,因为它跟用户名、密码都无关联。
登录失败的提示是:"账号或密码错误"
登录成功的提示是: “应用信息错误”,因为参数APPid被设为了null
漏洞证明:
直接在那网页上多点击几下就可以看到了。
修复方案:
1. 解决验证码不过期,绕过问题
2. APP的登陆最好是加上sign签名验证,常见HMAC_SHA1,预防攻击者轻易地非法篡改请求
版权声明:转载请注明来源 lijiejie@乌云
漏洞回应
厂商回应:
危害等级:低
漏洞Rank:5
确认时间:2014-09-01 19:57
厂商回复:
多谢提醒,修复中。
最新状态:
暂无