你的微信号是如何被黑的?(上)

龙 宇 2016-7-25 QQ黑客 0 1
你的微信号是如何被黑的?(上)

这是乌云上一个比较老的漏洞,当时微信的密码重置功能刚刚推出。

  选择密码重置功能中的手机找回,然后需要填写手机接收到的验证码信息。

  我们当然不知道验证码了,所以要进行暴力破解

  然而微信对尝试次数进行了限制,会提示请求过于频繁。

  但漏洞作者发现,微信对手机号的处理存在缺陷。

  统计尝试次数时,没有对手机号进行提纯。

  但是比对验证码是否正确时,却进行了提纯,只取出了手机号的数字部分。

  这就导致每一次尝试时,可以在手机号后面加一些不同的随机字母,来绕过其对尝试次数的限制。

  进而重置密码。

  就这样,你的微信号被黑了!

  随着Web2.0的到来,各个网站几乎都具备了用户功能,这有利于网站与用户的交互,以及用户体验度的上升。

  但是我们每天面对这么多的网站,用户名密码记得住吗???

  这之间似乎就出现了一些矛盾:

  1.若每个网站使用不同的账号密码,则不易于记忆,说不定哪天就忘了。(这里不包括记忆力超群的人)

  2.但是如果各个网站使用相同的账号密码,那么一旦一个网站的用户信息泄漏,那么就会被一锅端。

  这确实是一个十分纠结的问题,但本文并不打算解决这个问题,也不是文章重点所在。

  当你忘记密码时,就需要用到密码重置这个功能,本文将重点揭露密码重置功能的脆弱性。

  首先, 先给出密码重置的步骤:

          你的微信号是如何被黑的?(上)

  之所以写的比较繁琐,是因为它每一个环节都可能产生问题,也都确实产生过问题。

  其实密码重置功能之所以出现漏洞和缺陷,都是因为开发人员认为用户会按照其设计好的程序逻辑进行一系列的合法操作,即

  1.提交合法且正确的参数

  2.遵循设计好的找回步骤

  大多数情况下确实如此,但是一些攻击者并不会按照常理出牌。

  一.验证凭据过于简单,导致可以猜测或爆破

  其实验证凭证过于简单并不一定会造成威胁,例如找回密码是通过一个4位纯数字验证凭据,它也不一定不安全。因为验证凭证的有效性由三点因素决定:

  1.验证凭证的复杂和可靠程度

  2.验证错误次数的限制

  3.人机识别(例如验证码)

  所以只要其它两点较为有效,即便验证凭据比较简单,密码找回功能也可以拥有足够的安全性。

  但当这三点同时存在问题时,密码找回功能就会变得脆弱无比。

  当当网任意用户密码修改漏洞(漏洞作者:kobin97)

  http://www.wooyun.org/bugs/wooyun-2012-011833

  当当网的密码找回功能中,首先需要提供要重置密码用户的手机号码,接着,用户手机中将接收到一个4位验证码。用户将正确的验证码填写在找回页面,就可以重置密码了。

  但问题是,当当网的密码找回功能没有满足以上3点的任意一点,这就导致了漏洞的产生。其不存在提交验证码以及错误次数限制,并且验证凭据很简单,为4位纯数字。

  4位验证码只有10000种组合,暴力破解只需要非常短的时间。进而重置了任意用户的密码。

  PS:在我们实际渗透测试中,当其合法用户收到密码重置验证码时,一定会感觉到异常,所以我们在进行重置操作时,同时应使用短信轰炸类似的工具加以配合。

  二.验证凭据传输过程/方式不安全

  走秀网秀团任意密码修改缺陷(漏洞作者:Jannock)

  http://www.wooyun.org/bugs/wooyun-2012-05630

  在其密码重置处,选择手机号重置,点击获取验证码,这时候对请求进行抓包,就能够明文抓取到验证码。导致验证码验证功能形同虚设。

  而正确的处理方法是验证码的生成和验证一切都在服务器端进行,并且务必不要使用明文传输验证码,至少要进行加密啊。

  但是,有时候虽然进行了加密,但是加密还是形同虚设,为什么呢?因为有些情况下,你并不需要知道其明文。

  天天网任意账户密码重置(二)(漏洞作者:px1624)

  http://www.wooyun.org/bugs/wooyun-2012-058210

  在此案例中,验证凭证依然可以通过抓包得到,但是验证码进行了加密,不过此案例中网站的密码重置功能中,只要将加密了的验证码带入参数之中,就可以进入重置密码环节,并不需要知道其明文。

  所以,如果即使是对验证码进行了加密,但如果没有使用有效的处理方式,依然是无济于事的。

  这就需要去考虑,某些功能是否真的可以起到安全保障的作用?

  还有些情况是,开发人员为了方便验证,将密保问题和密保答案都放在了验证页面。

  sohu邮箱任意用户密码重置(漏洞作者:汉时明月)

  http://www.wooyun.org/bugs/wooyun-2012-04728

  在此案例中,在密码重置功能处,回答密保问题的环节,查看网站源代码,就可以发现,密保答案在一个隐藏标签中明文存储。

  程序的功能的实现,在保证高效性的同时,也应该去思考随之而来可能存在的安全问题。

  新浪某站任意用户密码修改(漏洞作者:s3xy)

  http://www.wooyun.org/bugs/wooyun-2012-085124

  在此案例中,只需要提供一个用户名,服务器响应包就会返回对应手机号,再填写手机号,相应包就会返回手机上收到的对应验证码,这一切数据只是简单地使用md5进行了加密。程序使用异步技术可以减轻服务器压力,但是是否对异步过程本身的安全性给予足够的重视了呢?

  三.重置密码链接token弱,导致可预测或破解

  奇虎360任意用户密码修改漏洞(漏洞作者:牛奶坦克)

  http://www.wooyun.org/bugs/wooyun-2012-08333

  在本案例中,使用了不安全的随机数生成方法,使用unix时间戳作为重置密码链接中的token,时间戳看似是随机的,其实完全是可以预测的。

  因为攻击者可以掌控重置密码的时间,所以只需要对重置密码那一时间点及其其附近时间段的时间戳,进行爆破,即可得到正确的token,这一过程可以很快捷地做到。

  其实更方便的做法是:在重置目标账户时,同时对自己的账户进行找回,这样查看自己邮箱的时间戳,就可以了,最多就是有个小误差,自己调整下就好了~

原文地址:http://m.77169.net/HTML/227910.html

转载请注明来自华盟网,本文标题:《你的微信号是如何被黑的?(上)》

喜欢 (1) 发布评论