您的位置:首页 > 其它

安全测试之忘记密码存在的问题

2016-02-26 17:10 344 查看
忘记密码这个功能相对于登录功能来说,是比较容易忽略的,因为大家可能觉得忘记密码(找回密码)比较简单,大多数的思路便是通过用户名、手机、邮件等找回密码,其实这个功能还是存在很多可以攻击的地方,也是比较容易出现安全问题的。

第一类:没有使用加密手段

场景一:直接截取手机验证码

某网站的忘记密码功能是通过手机号码找回,我输入自己的手机号码,点击发送重置密码短信之后,我查看源代码(或者通过截取post请求),发现验证码存在源代码网页上(或者截取到的post请求可以查看),而且还没有进行加密(就是因为没有进行加密,才方便于联想到它是验证码,也方便重新将验证码输入后重置密码),于是我就可以输入其他人的手机号码,这样通过截取信息就可以获取相应的验证码,进而可以重置这个用户的密码信息。

场景二:截取数据将手机号换成自己的,验证码直接发送到自己手机上

假设有这样一个网站,重置密码页面由用户名、手机号码和验证码组成,这个页面中如果输入一个已存在的用户,手机号码会自动生成,但是会把中间4位使用*号代替(这是一个漏洞,将两个校验简化成了一个校验)。

某人可以通过暴力破解的方式查找到一个存在的用户名,然后自动生成了一个带有*的手机号码,我输入验证码后点击重置密码按钮,同时进行抓包截取这个请求,然后分析结果发现,post请求中有没有加密的手机号码,11位全部可以读取(是明文的),手机明文也是一个问题。

我完全可以将手机号码换成我自己的,然后重新把这个包发出去,这样短信就会发送到我的手机上,短信中有了新密码,我可以以其他人的身份去登录啦(现在好多网站会在短信中给你一个密码,然后建议你去更改)。

第二类:过于信任MD5加密

MD5加密可以预防一些安全问题,但是不得不承认,它也是一些安全问题的源泉。

下面的两个例子都是发现重置邮件中的链接,虽然进行了MD5加密,但是具有规律性。

场景一:

某网站的重置密码是通过发送邮件的方式,可能我通过使用自己的邮件重置密码,在收到的邮件中发现邮件中的链接是使用id和id的MD5加密过后的字符串组合而成,如果发现了这个规律,就可以通过以下操作:

通过暴力破解查找到已存在的用户名,然后使用暴力破解重置密码链接(即使你没有收到这个邮件,因为邮件中唯一标识是由id组成,id一般是用户的id,用户数量是一定的,可以不断增大id值来暴力破解),这样就可以重置别人的账号信息。

场景二:

某网站的重置密码是通过发送邮件的方式,可能我通过使用自己的邮件重置密码,在收到的邮件中发现邮件中的链接是username的MD5加密后的字符串,发现了规律,我想会不会有一个叫做admin的管理员用户呢,于是试试的心态打开将admin使用MD5加密后的链接,竟然重置成功后使用admin登录进去了,

哇哦哦,这可是管理员的账号啊!!

第三类:直接暴力破解

1.暴力破解,主要使用穷举法。

2.组合破解,使用MD5加密后暴力破解或者综合技术等等。

小方案:

提问:现在有的网站有登录、访问的限制,对次数有限制要求,那怎么使用暴力破解呢?

解答:设置发送包的时间,还有就是要使用变换IP的工具,网上比较多。

注:

本篇博文主要是供学习使用,不作其他用途。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: