web跨站点脚本攻击方式和测试方法[1]

发表于:2010-02-05来源:作者:点击数: 标签:webWebWEB脚本攻击
web跨站点脚本攻击方式和 测试方法 [1] web测试 到目前为止,对于跨站点脚本攻击具有很大的威胁这一点大家并无异议。如果您很精通 XSS 并且只想看看有什么好的测试方法可供借鉴,那么请直接跳到本文的测试部分。如果您对此一无所知,请按顺序认真阅读!如果某

  web跨站点脚本攻击方式和测试方法[1]  web测试

  到目前为止,对于跨站点脚本攻击具有很大的威胁这一点大家并无异议。如果您很精通 XSS 并且只想看看有什么好的测试方法可供借鉴,那么请直接跳到本文的测试部分。如果您对此一无所知,请按顺序认真阅读!如果某个怀有恶意的人(攻击者)可以强迫某个不知情的用户(受害者)运行攻击者选择的客户端脚本,那么便会发生跨站点脚本攻击。“跨站点脚本”这个词应该属于用词不当的情况,因为它不仅与脚本有关,而且它甚至不一定是跨站点的。所以,它就是一个在发现这种攻击时起的一个名字,并且一直沿用至今。从现在开始,我们将使用它常见的缩写名称“XSS”。

  XSS 攻击的过程涉及以下三方:

  •攻击者

  •受害者

  •存在漏洞的网站(攻击者可以使用它对受害者采取行动)

  在这三方之中,只有受害者会实际运行攻击者的代码。网站仅仅是发起攻击的一个载体,一般不会受到影响。可以用多种方式发起 XSS 攻击。例如,攻击者可通过电子邮件、IM 或其他途径向受害者发送一个经过经心构造的恶意 URL。当受害者在 Web 浏览器中打开该 URL 的时侯,网站会显示一个页面并在受害者的计算机上执行脚本。

  XSS 漏洞是什么样的呢?   软件测试 

   作为一名 Web 开发人员或测试人员,您肯定知道 Web 应用程序的技术基础是由 HTTP 和 HTML 组成的。HTTP 协议是 HTML 的传输机制,可使用代码设计 Web 页面布局和生成页面。

  如果 Web 应用程序接受用户通过 HTTP 请求(如 GET 或 POST)提交的输入信息,然后使用输出 HTML 代码在某些地方显示这些信息,便可能存在 XSS 漏洞。下面是一个最简单的例子:

  1. Web 请求如下所示:

  GET http://www.somesite.com/page.asp?pageid=10&lang=en&title=Section%20Title

  2. 在发出请求后,服务器返回的 HTML 内容包括:

  Section Title

  可以看到,传递给“title”查询字符串参数的用户输入可能被保存在一个字符串变量中并且由 Web 应用程序插入到 标记中。通过提供输入内容,攻击者可以控制 HTML。

  3. 现在,如果站点没有在服务器端对用户输入加以过滤(因为总是可以绕过客户端控件),那么恶意用户便可以使用许多手段对此漏洞加以滥用:

  攻击者可以通过摆脱

  标记来注入代码:

  alert(‘XSS%20attack’)http://www.somesite.com/page.asp?pageid=10&lang=en&title=Section%20Title

  alert(‘XSS%20attack’)

  这个请求的 HTML 输出将为:

  Section Title

  alert(‘XSS attack’)

  即便是这个最简单的例子,攻击者也可以利用此连接完成数不清的事情。让我们看看会有哪些潜在的威胁,然后讨论一些更高级的测试方法。

  XSS 攻击的威胁有多么严重?

  由于能够在生成的 Web 页面中注入代码,能想到的威胁有多么严重,就可以有多么严重的威胁。攻击者可以使用 XSS 漏洞窃取 Cookie,劫持帐户,执行 ActiveX,执行 Flash 内容,强迫您下载软件,或者是对硬盘和数据采取操作。

原文转自:http://www.ltesting.net