1、页面返回:返回的页面里显示用户的邮箱密码。这样故然方便省事,但是如果让攻击者得到密码,则能在丝毫不惊动用户的情况下使用用户的邮箱,使得攻击者能长期监视用户的邮箱使用情况,给用户带来更大的安全隐患。
2、邮件发送:将密码发送到用户注册时登记的另一个邮箱里。对于攻击者来说,忙了半天,仍然是一无所获,除非继续去攻击另一个邮箱;对于用户来说,在另一个邮箱里收到发来的密码则是一个警告,说明有攻击者猜测到了他的邮箱密码提示问题,迫使用户尽快改变自己的密码提示问题。
不过,如果用户注册时登记的不是一个正确的邮箱,或者该邮箱已经失效,那么,这样不仅是攻击者,就是用户本人也永远得不到密码了。有些WebMail系统在注册时要求用户登记正确的邮件地址,并把邮箱开通的验证信息发往该邮件地址,不过这样仍然不能避免用户在邮箱失效后不能恢复自己邮箱密码的情况发生。
3、密码重设:让用户重新设置一个密码。这种方式相比“页面返回”方式,在攻击者重设密码后,用户因为不能正常登录进自己的邮箱而能察觉出受到攻击,安全性相对好一些;但是相比“邮件发送”方式,因为攻击者能立即修改邮箱密码,少了一层保障,安全性又差一些。
由“页面返回”或“邮件发送”回来的密码可以明显看出,该电子邮件系统是把邮箱帐户的密码未经加密直接以明文保存在数据库或LDAP服务器中。这样就造成很大的安全隐患,WebMail系统管理员或侵入数据库的攻击者能轻易获取用户的邮箱密码,用户却完全不知情,所以为了加大保密性,有必要将邮箱密码加密后再以密文存入数据库,最好用不可逆的单向加密算法,如md5等。
邮箱密码恢复机制是否安全,主要还是看WebMail系统提出什么样的问题、采取什么样的问答方式,例如将多个密码恢复步骤中提出的问题放在一步中一起提出,就会相应地增加攻击者的难度从而提高安全性,像搜狐邮件、新浪邮件和yahoo电邮等都是一些令人失望的例子。
四、恶性HTML邮件
电子邮件有两种格式:纯文本(txt)和超文本(html)。Html邮件由html语言写成,当通过支持html的邮件客户端或以浏览器登录进入WebMail查看时,有字体、颜色、链接、图像、声音等等,给人以深刻的印象,许多垃圾广告就是以html邮件格式发送的。
利用html邮件,攻击者能进行电子邮件欺骗,甚至欺骗用户更改自己的邮箱密码。例如攻击者通过分析WebMail密码修改页面的各表单元素,设计一个隐含有同样表单的html页面,预先给“新密码”表单元素赋值,然后以html邮件发送给用户,欺骗用户说在页面中提交某个表单或点击某个链接就能打开一个精彩网页,用户照做后,在打开“精彩网页”的同时,一个修改邮箱密码的表单请求已经发向WebMail系统,而这一切,用户完全不知情,直到下次不能登录进自己邮箱的时候。
为了防止此类的html邮件欺骗,在修改邮箱配置时,特别是修改邮箱密码和提示问题时,WebMail系统有必要让用户输入旧密码加以确认,这样也能有效防止载取到当前WebMail会话的攻击者(下面会介绍)更改邮箱密码。
通过在html邮件中嵌入恶性脚本程序,攻击者还能进行很多破坏攻击,如修改注册表、非法操作文件、格式化硬盘、耗尽系统资源、修改“开始”菜单等,甚至能删除和发送用户的邮件、访问用户的地址簿、修改邮箱帐户密码等等。恶性脚本程序一般由JavaScript或VBScript脚本语言写成,内嵌在html语言中,通过调用ActiveX控件或者结合WSH来达到破坏攻击目的。深受修改浏览器的恶性html页面之痛,饱经“欢乐时光”邮件病毒之苦的朋友,对此应该不会陌生。下面是两个简单的恶性脚本程序:
1、打开无数个浏览器窗口,直至CPU超负荷,非关机不可:
<script language="JavaScript">
<!--
while (true)
{
window.open("URI"); //如果URI就是当前页本身,那就更具破坏性。
}
//-->
</script>
2、修改注册表:
<script language="VBScript">
Set RegWsh = CreateObject("WScript.Shell")
'设置IE浏览器默认页
RegWsh.RegWrite "HKCU\Software\Microsoft\Internet Explorer\Main\Start Page", "http://www.attacker.com"
</script>