二、webmail暴力破解
inte.net上客户端与服务端的交互,基本上都是通过在客户端以提交表单的形式交由服务端程序(如cgi、asp等)处理来实现的,webmail的密码验证即如此,用户在浏览器的表单元素里输入帐户名、密码等信息并提交以后,服务端对其进行验证,如果正确的话,则欢迎用户进入自己的webmail页面,否则,返回一个出错页面给客户端。
籍此,攻击者借助一些黑客工具,不断的用不同的密码尝试登录,通过比较返回页面的异同,从而判断出邮箱密码是否破解成功。帮助攻击者完成此类暴力破解的工具有不少,如wwwhack、小榕的溯雪等,尤以溯雪的功能最为强大,它本身已经是一个功能完善的浏览器,通过分析和提取页面中的表单,给相应的表单元素挂上字典文件,再根据表单提交后返回的错误标志判断破解是否成功。
当然我们也看到,溯雪之类的web探测器,可以探测到的不仅是webmail的密码,像论坛、聊天室之类所有通过表单进行验证登录的帐户密码都是可以探测到的。
对于webmail的暴力破解,许多webmail系统都采取了相应的防范措施。如果某帐户在较短的时间内有多次错误登录,即认为该帐户受到了暴力破解,防范措施一般有如下三种:
1、禁用帐户:把受到暴力破解的帐户禁止一段时间登录,一般是5至10分钟,但是,如果攻击者总是尝试暴力破解,则该帐户就一直处于禁用状态不能登录,导致真正的用户不能访问自己的邮箱,从而形成dos攻击。
2、禁止ip地址:把进行暴力破解的ip地址禁止一段时间不能使用webmail。这虽然在一定程度上解决了“禁用帐户”带来的问题,但更大的问题是,这势必导致在网吧、公司、学校甚至一些城域网内共用同一ip地址访问inte.net的用户不能使用该webmail。如果攻击者采用多个代理地址轮循攻击,甚至采用分布式的破解攻击,那么“禁止ip地址”就难以防范了。
3、登录检验:这种防范措施一般与上面两种防范措施结合起来使用,在禁止不能登录的同时,返回给客户端的页面中包含一个随机产生的检验字符串,只有用户在相应的输入框里正确输入了该字符串才能进行登录,这样就能有效避免上面两种防范措施带来的负面影响。不过,攻击者依然有可乘之机,通过开发出相应的工具提取返回页面中的检验字符串,再将此检验字符串做为表单元素值提交,那么又可以形成有效的webmail暴力破解了。如果检验字符串是包含在图片中,而图片的文件名又随机产生,那么攻击者就很难开发出相应的工具进行暴力破解,在这一点上,yahoo电邮就是一个非常出色的例子。
虽然webmail的暴力破解有诸多的防范措施,但它还是很难被完全避免,如果webmail系统把一分钟内五次错误的登录当成是暴力破解,那么攻击者就会在一分钟内只进行四次登录尝试。所以,防范webmail暴力破解还主要靠用户自己采取良好的密码策略,如密码足够复杂、不与其他密码相同、密码定期更改等,这样,攻击者很难暴力破解成功。
三、邮箱密码恢复
难免会有用户遗失邮箱密码的情况,为了让用户能找回密码继续使用自己的邮箱,大多数webmail系统都会向用户提供邮箱密码恢复机制,让用户回答一系列问题,如果答案都正确的话,就会让用户恢复自己邮箱的密码。但是,如果密码恢复机制不够合理和安全,就会给攻击者加以利用,轻松获取他人邮箱密码。 下面是许多webmail系统密码恢复机制所采取的密码恢复步骤,只有用户对每步提出的问题回答正确的话才会进入下一步,否则返回出错页面,针对每一步,攻击者都有可乘之机:
第一步:输入帐户:在进入密码恢复页面后首先提示用户输入要恢复密码的邮箱帐户。这一步对攻击者而言自然不成问题,邮箱帐户就是他要攻击的目标。
第二步:输入生日:提示用户按年月日输入自己的生日。这一步对攻击者而言也很轻松,年月日的排列组合很小,借助溯雪等工具很快就能穷举破解出来,所以webmail系统有必要在此采取暴力破解防范措施。并且每个用户需要注意的是,攻击者不一定来自地球的另一端,很可能就是你身边的人,或许这些人更想知道你邮箱里有什么秘密,而他们要弄清你的生日往往是件轻而易举的事情,你不是昨天才过了生日party吗?你不是刚刚把身份证复印件交给人事部吗?所以,为了邮箱安全,用户是不是要把真实的生日做为邮箱注册信息,webmail系统是不是一定要用户输入真实的生日做为注册信息,这还有待考虑。
第三步:问题回答:提示用户回答自己设定的问题,答案也是用户自己设定的答案。在这一步,攻击者往往只有靠猜测,不幸的是,很多用户的问题和答案是如此的简单,以致于攻击者能轻易的猜测出来,例如提出的问题只是知识性的问题、提出的问题和答案相同等。攻击者对用户越熟悉,成功的可能性就越大,例如有用户问“你男朋友是哪里人”,殊不知,攻击者正是她的男朋友。所以,用户把问题设置成唯有自己知道的答案至关重要,这样攻击者才很难得逞,不过不要忘了答案,否则就得不偿失了。
Java Asp PHP .Net XML C/C++ CGI VB Jsp J2ee J2se J2me EJB Servlet Tomcat Resin Struts Weblogic Eclipse ANT GUI JMS Web servise IDEA Webphere Hibernate Spring Jboss Applet Swing Socket Javamail Perl Ajax P2P 安全 模式 框架 测试 开源 游戏
Windows XP Windows 2000 Windows 2003 Windows Me Windows 9.x Linux UNIX 注册表 操作系统 服务器 应用服务器