漏洞概要
缺陷编号:WooYun-2014-062966
漏洞标题:墨迹天气android客户端系列2:修改任意邮箱用户密码姿势一
相关厂商:墨迹天气
漏洞作者:白非白
提交时间:2014-05-31 15:41
公开时间:2014-07-15 15:41
漏洞类型:设计缺陷/逻辑错误
危害等级:高
自评Rank:20
漏洞状态:未联系到厂商或者厂商积极忽略
Tags标签:
漏洞详情
披露状态:
2014-05-31: 积极联系厂商并且等待厂商认领中,细节不对外公开
2014-07-15: 厂商已经主动忽略漏洞,细节向公众公开
简要描述:
墨迹天气是一款十分流行的桌面天气软件,有很多漂亮的皮肤(收费)。所有漏洞都是在研究如何实现收费皮肤免费使用的过程中发现。。。。。。
详细说明:
这个修改密码是根据客户端的“忘记密码?”功能发现的。正常青年修改密码的流程:
点击忘记密码->选择邮箱方式找回->点击邮箱中修改密码连接->重置密码
1
点击忘记密码->选择邮箱方式找回->点击邮箱中修改密码连接->重置密码
wooyun青年修改密码的流程:
打开重置密码的连接,直接修改其他用户密码
1
打开重置密码的连接,直接修改其他用户密码
http://ugc.moji001.com/mapi/ResetPasswordBefore?E268443E43D93DAB7EBEF303BBE9642F={{****}}&07CC694B9B3FC636710FA08B6922C42B=[[31343031343334363738363430]]&lan=CH
1
http://ugc.moji001.com/mapi/ResetPasswordBefore?E268443E43D93DAB7EBEF303BBE9642F={{****}}&07CC694B9B3FC636710FA08B6922C42B=[[31343031343334363738363430]]&lan=CH
参数说明:上面连接中{{}}处的内容为注册用户的邮箱+ascii hex编码后内容([email protected],可以用burp的encode功能实现),是要修改密码的用户的邮箱[[]]处的内容为java获取的13位当前时间戳+ascii hex编码后内容(31343031343334363738363430解码后为13位时间戳1401434678640)[[]]处的内容是服务器判断一个修改密码连接是否失效的标准,假如[[]]中的时间戳转换成可以看懂的时间为2014年1月1号12:30,你修改密码的时间为2014年1月1号16:30,那么这个连接就失效了。换句话说就是:你修改密码时的时间不能大于连接中时间2个小时,2个小时后连接就失效了。我怎么知道哪个邮箱注册了墨迹天气呢?http:[email protected][email protected],如果返回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处,可以进行测试。我昨天自己测过很多遍,都成功,昨天没截图。
修复方案:
验证方式再靠谱一点~编码方式在复杂一点,不要一下子就被我看懂嘛
漏洞回应
厂商回应:
未能联系到厂商或者厂商积极拒绝
评价
2010-01-01 00:00 白非白 白帽子 | Rank:312 漏洞数:27)
@xsser @疯狗 @zeracker 大大们,这个bug的厂商应该是墨迹风云,墨迹天气6月6号发布国际版新版本,但是刚才验证了一下,该漏洞在新版本中还未修复,请帮我把厂商修改一下,谢谢了,么么哒~