来源:未知 时间:2015-04-15 13:43 作者:xxadmin 阅读:次
[导读] 用户名枚举和密码猜测是攻击web验证两个核心部分。这篇文章只探讨用户名枚举的一些常见情况。 正文 11.1从网站的用户标识获取用户名 对于博客, 论坛 ,交友网这样的网站,对于不...
用户名枚举和密码猜测是攻击web验证两个核心部分。这篇文章只探讨用户名枚举的一些常见情况。 正文 11.1从网站的用户标识获取用户名 对于博客,论坛,交友网这样的网站,对于不同的用户的标识有用户名,ID号,昵称等级种形式,很多时候会很明显的暴露用户登录用的用户名。 以博客园为例,访问每个人的空间都会得到类似的链接:http://www.cnblogs.com/tintown/。tintown就 是用户名。 用这样的方法我们可以获得博客园所有用户的登录用户名。再比如百度空间,也有类似的情况。 上面的xuanhun就是登录用户名。不过最近百度对你访问的其他人的空间做了加密处理。但是很容易被还原。 比较好的办法是登录名和网站的功能操作的用户标识区分开。下面看校内网的一个例子。
校内网的用户ID是程序自动和用户名绑定的,而操作的过程用的是ID而不是用户名,用户登录的时候用的是用户名而不是ID,这在一定程度上给用户名枚举造成了困难。 11.2内容信息 很多网站是以邮箱登陆的,但个人信息也有Email选项,如果该用户填写了,很有可能就是暴露了他的登录用户名。 填写了可以暴露他的用户名的间接信息。比如在XX网站填写了博客园的空间链接,那么博客园的登录用户名很可能就是他在XX网站的用户名。因为很少有人不断的更换自己的用户名和密码。 其他的一些敏感信息。页面内的username,uid等关键字。 11.3暴力登录探测 (1)登录界面
这是很多软件常用的方法,利用已有的字典不断做登录尝试,根据返回的信息判断是否成功。 仍以博客园为例: 我先在登录界面输入用户名dudu,密码123,返回密码错误信息。 我再输入dudu123456,密码123,返回用户名不存在信息。 根据返回信息的不同,我们可以确定用户名的存在与否。 (2)注册信息 以百度注册为例 我输入一个已经存在的用户名,会返回用户名已存在的信息。这样就获得了用户名。 (3)找回密码信息 刚才我们说了校内网在防止用户名枚举的安全策略,下面我们再看看它的找回密码界面。 把我们要探测的帐号输入,如果错误就会返回这样的错误信息。如果正确呢? 看,连邮箱都给我们显示出来了。 这里需要说的是,对于具体的攻击细节和防护细节我们留在下一篇文章中具体探讨。 (5)账户锁定 对于返回错误信息不明显的页面我们也可以利用它的账户锁定机制。原因很简单,账户锁定仅仅针对已经存在的用户,而对不存在的用户是不锁定的。比如126邮箱。但是账户锁定很容易被暴力程序造成拒绝服务攻击。
11.4 阻止暴力探测的一些方法的探讨 (1)账户锁定 账户锁定是很有效的方法,因为暴力破解程序在5-6次的探测中猜出密码的可能性很小。但是同时也拒绝了正常用户的使用。如果攻击者的探测是建立在用户名探测成功之后的行为,那么会造成严重的拒绝服务攻击。对于对大量用户名只用一个密码的探测攻击账户锁定无效。 如果对已经锁定的账户并不返回任何信息,可能迷惑攻击者。 (2)返回信息 如果不管结果如何都返回成功的信息,破解软件就会停止攻击。但是对人来说很快就会被识破。 (3)页面跳转 产生登录错的的时候就跳到另一个页面要求重新登录。比如126和校内网都是这样做的。局限性在于不能总是跳转页面,一般只在第一次错误的时候跳转,但是第一次之后又可以继续暴力探测了。 (4)适当的延时 检查密码的时候适当的插入一些暂停,可以减缓攻击,但是可能对用户造成一定的影响。 (5)封锁多次登录的IP地址 这种方法也是有缺点的,因为攻击者可以定时更换自己的IP。 (6)验证码 刚才Mien Ng给我说了验证码的问题,本来打算在下次说的,既然提了,也感觉该在这里说一下比较好。验证码确实是阻止暴力攻击的好方法,但设计不好的验证码是可以绕过的,这里也不详细说。对于特定目标的手工探测来说验证码是没有作用的。 |
自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习
京ICP备14009008号-1@版权所有www.zixuephp.com
网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com