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

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

缺陷编号:wooyun-2014-062966

漏洞标题:墨迹天气android客户端系列2:修改任意邮箱用户密码姿势一

相关厂商:墨迹天气

漏洞作者: 白非白

提交时间:2014-05-31 15:41

修复时间:2014-07-15 15:41

公开时间:2014-07-15 15:41

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

危害等级:高

自评Rank:20

漏洞状态:未联系到厂商或者厂商积极忽略

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2014-05-31: 积极联系厂商并且等待厂商认领中,细节不对外公开
2014-07-15: 厂商已经主动忽略漏洞,细节向公众公开

简要描述:

墨迹天气是一款十分流行的桌面天气软件,有很多漂亮的皮肤(收费)。所有漏洞都是在研究如何实现收费皮肤免费使用的过程中发现。。。。。。

详细说明:

这个修改密码是根据客户端的“忘记密码?”功能发现的。
正常青年修改密码的流程:

点击忘记密码->选择邮箱方式找回->点击邮箱中修改密码连接->重置密码


wooyun青年修改密码的流程:

打开重置密码的连接,直接修改其他用户密码


http://ugc.moji001.com/mapi/ResetPasswordBefore?E268443E43D93DAB7EBEF303BBE9642F={{****}}&07CC694B9B3FC636710FA08B6922C42B=[[31343031343334363738363430]]&lan=CH


参数说明:
上面连接中{{}}处的内容为注册用户的邮箱+ascii hex编码后内容(即a@qq.com编码后为614071712e636f6d,可以用burp的encode功能实现),是要修改密码的用户的邮箱
[[]]处的内容为java获取的13位当前时间戳+ascii hex编码后内容(31343031343334363738363430解码后为13位时间戳1401434678640)
[[]]处的内容是服务器判断一个修改密码连接是否失效的标准,假如[[]]中的时间戳转换成可以看懂的时间为2014年1月1号12:30,你修改密码的时间为2014年1月1号16:30,那么这个连接就失效了。
换句话说就是:你修改密码时的时间不能大于连接中时间2个小时,2个小时后连接就失效了。
我怎么知道哪个邮箱注册了墨迹天气呢?
http://ugc.moji001.com/sns/VerificationAccount?Account=a@126.com
改变a@126.com未你要测试的邮箱,如果返回true,表示未注册,返回false,表示已注册。
所有已注册的邮箱都可以通过上面的连接 修改密码。
ps:网上各种库各种邮箱,用burp遍历一次就能得到大量注册用户。
时间戳该怎么得到?
方式一:用java函数得到当前时间的13位时间戳。在之后的两个小时内,[[]]内内容保持当前时间戳编码后的内容不变,修改邮箱即可。
方式二:用自己邮箱注册一个帐号,点击一次忘记密码,邮箱中得到一个连接,使用该连接中的时间戳,即可在两个小时内修改任意邮箱用户密码。

漏洞证明:

http://ugc.moji001.com/mapi/ResetPasswordBefore?E268443E43D93DAB7EBEF303BBE9642F=here&07CC694B9B3FC636710FA08B6922C42B=31343031353131343330303330&lan=CH
上面的连接的时间戳是今天12:46,也就是说在14:46之前修改连接中的here即可修改用户密码
@xsser 随便用邮箱注册一个墨迹天气帐号,将邮箱 用ascii hex方式编码后填入上面连接here处,可以进行测试。
我昨天自己测过很多遍,都成功,昨天没截图。

修复方案:

验证方式再靠谱一点~编码方式在复杂一点,不要一下子就被我看懂嘛

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


漏洞回应

厂商回应:

未能联系到厂商或者厂商积极拒绝