网络安全知识之XSS介绍

1、XSS简介

跨站脚本攻击(Cross Site Script为了区别于CSS简称为XSS)指的是恶意攻击者往Web页面里插入恶意html代码,当用户浏览该页之时,嵌入其中Web里面的html代码会被执行,从而达到恶意用户的特殊目的。

XSS跨站漏洞如此普遍和流行的主要因素有如下几点:

  • web浏览器本身的设计是不安全的,浏览器包含了解析和执行javaScript等脚本语言的能力,这些语言可以用来创建各种丰富的功能,而浏览器只会执行,不会判断数据和代码是否恶意。
  • 输入和输出是web应用程序最基本的交互,在这过程中,若没有做好安全防护,Web程序很容易出现XSS漏洞。
  • 现在的应用程序大部分是通过团队合作完成的,程序员之间的水平层次不齐,很少有人受过正规的安全培训,不管是开发程序员还是安全工程师,很多没有真正意识到XSS的危害。
  • 触发跨站脚本的方式非常简单,只要像HTML代码中注入脚本即可,而且执行此类攻击的手段众多,譬如利用CSS、Flash等。XSS技术的运用灵活多变,做到完全防御是一件相当困难的事情。
  • 随着Web 2.0的流行,网站上交互功能越来越丰富。Web 2.0鼓励信息分享与交互,这样用户就有了更多的机会去查看和修改他人的信息,比如通过论坛、blog或社交网络,于是黑客也就有了更广阔的空间发动XSS攻击。

2、XSS的危害

  • 盗取各类用户 帐号,如机器登录帐号、用户网银帐号、各类管理员帐号
  • 控制企业数据,包括读取、篡改、添加、删除企业敏感数据的能力
  • 盗窃企业重要的具有商业价值的资料
  • 非法转账
  • 强制发送电子邮件
  • 网站挂马
  • 控制受害者机器向其它网站发起攻击

3、XSS漏洞的分类


XSS漏洞按照攻击利用手法的不同,有以下三种类型:
  • 类型A,本地利用漏洞,这种漏洞存在于页面中客户端脚本自身。其攻击过程如下所示:
    Alice给Bob发送一个恶意构造了Web URL
    Bob点击并查看了这个URL。
    恶意页面中的JavaScript打开一个具有漏洞的HTML页面并将其安装在Bob电脑上。
    具有漏洞的HTML页面包含了在Bob电脑本地域执行的JavaScript。
    Al ice的恶意脚本可以在Bob的电脑上执行Bob所持有的权限下的命令。
  • 类型B,反射式漏洞这种漏洞和类型A有些类似,不同的是Web客户端使用Server端脚本生成页面为用户提供数据时,如果未经验证的用户数据被包含在页面中而未经HTML实体编码,客户端代码便能够注入到动态页面中。其攻击过程如下:
    Alice经常浏览某个网站,此网站为Bob所拥有。Bob的站点运行Alice使用用户名/密码进行登录,并存储敏感信息(比如银行帐户信息)。
    Charly发现Bob的站点包含反射性的XSS漏洞。
    Charly编写一个利用漏洞的URL,并将其冒充为来自Bob的邮件发送给Alice。
    Alice在登录到Bob的站点后,浏览Charly提供的URL。
    嵌入到URL中的恶意脚本在Alice的浏览器中执行,就像它直接来自Bob的服务器一样。此脚本盗窃敏感信息(授权、信用卡、帐号信息等)然后在Alice完全不知情的情况下将这些信息发送到Charly的Web站点。
  • 类型C,存储式漏洞该类型是应用最为广泛而且有可能影响到Web服务器自身安全的漏洞,骇客将攻击脚本上传到Web服务器上,使得所有访问该页面的用户都面临信息泄漏的可能,其中也包括了Web服务器的管理员。其攻击过程如下:
    Bob拥有一个Web站点,该站点允许用户发布信息/浏览已发布的信息。
    Charly注意到Bob的站点具有类型C的XSS漏洞。
    Charly发布一个热点信息,吸引其它用户纷纷阅读。
    Bob或者是任何的其他人如Alice浏览该信息,其会话cookies或者其它信息将被Charly盗走。
    类型A直接威胁用户个体,而类型B和类型C所威胁的对象都是企业级Web应用。

4、XSS攻击实例

  • 新浪微博XSS受攻击事件
  • 去掉supply后台xss过滤器,可以实现xss攻击

5、防御措施

  • 应用程序增加强壮的XSS过滤器

你可能感兴趣的:(网络安全)