首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >反射跨站点脚本的可能攻击向量是什么?

反射跨站点脚本的可能攻击向量是什么?
EN

Stack Overflow用户
提问于 2010-08-20 18:42:11
回答 3查看 4.3K关注 0票数 9

维基百科提供了关于最常见方案之一的信息,用于利用反射的跨站点脚本攻击--使用某种程度的社会工程来诱使毫无戒心的用户单击恶意链接:

  1. Alice经常访问由Bob主持的特定网站。Bob的网站允许Alice使用用户名/密码对登录,并存储敏感数据,如账单信息。
  2. Mallory注意到Bob的网站包含一个反射的XSS漏洞。
  3. Mallory设计了一个URL来利用该漏洞,并向Alice发送了一封电子邮件,诱使她以虚假的借口点击URL的链接。此URL将指向Bob的网站,但将包含Mallory的恶意代码,该网站将反映。
  4. Alice在登录到Bob的网站时访问了Mallory提供的URL。
  5. 嵌入在URL中的恶意脚本在Alice的浏览器中执行,就好像它直接来自Bob的服务器(这是实际的XSS漏洞)。该脚本可用于将Alice的会话cookie发送给Mallory。然后,Mallory可以使用会话cookie来窃取Alice可用的敏感信息(身份验证凭据、计费信息等)。爱丽丝不知道。

现在,当网站碰巧是一个页面驱动的应用程序时,这通常是一个很好的例子--该漏洞是通过让用户向应用程序提交恶意有效负载(更重要的是,登录时发出GET请求)来利用的,该漏洞反映在响应中。

是否还有更有趣的攻击矢量,特别是当应用程序使用大量AJAX时,大多数请求都是通过HTTP发出的?

编辑

如果我不清楚,我想知道适用于反映XSS攻击的各种类型的攻击向量,特别是当应用程序的客户端层的实现方式不同时。基于页面的应用程序将有一个涉及用户发出的HTTP请求的攻击向量,但是了解这对于厚客户端应用程序(尤其是使用发出HTTP请求的XMLHttpRequest对象的应用程序)的效果会很有趣。在客户端渲染中使用的不同机制显然需要研究不同的攻击向量。在某些情况下,可能没有任何适用的攻击矢量;问题是为了引起这样的反应。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-08-22 19:13:19

是的,事实上,反射XSS攻击有一些变化。最明显的是萨米蜗牛。简而言之,Samy使用XSS向MySpace.com发送XHR以读取CSRF令牌并伪造POST请求。事实上,这是一种通用的攻击模式,对于攻击使用httponly cookie的站点非常有用。随着httponly cookie的使用变得越来越流行,这种攻击模式也会越来越流行。

另一个xss有效负载是XSS壳。这为攻击者提供了与浏览器的交互通道。

XSS用于传递"按下载驱动“攻击。

Xss也可以用于伪造新闻。由于经常发现针对新闻来源的xss,这是一个相当严重的问题。

编辑:您可能还感兴趣的是如何使用xss和tinyurl创建被拥有这里是我编写的一个漏洞,它使用Samy风格的攻击来获得CSRF。

票数 3
EN

Stack Overflow用户

发布于 2010-08-24 12:35:08

benlbroussard已经谈到了这一点,但我想重申这一点,因为它很重要。胖客户,瘦客户,发帖,获取,放置;这些都不重要。XSS漏洞是基于一个站点错误地将一些输入呈现给某人。

如果您正在寻找一个严格的反射攻击,那么有效载荷不应该存储在目标应用程序的任何位置。在这种情况下,我认为您是对的,胖客户端将倾向于更有抵抗力,因为GET是发起反射XSS攻击的最简单方法。

关于更多的攻击向量,胖客户端架构的一个有趣之处是实体编码。瘦客户端可以对任何事情进行实体编码,并使用它来完成,这是非常有益的。胖客户端应该对初始GET的响应进行实体编码,但是以JavaScript为头的异步请求不能(完全)编码并且是有效的JS。这会增加不对应该编码的内容进行编码的可能性,这是创建XSS矢量的一大步。

讲得通?

卡尔

票数 3
EN

Stack Overflow用户

发布于 2010-08-23 23:48:34

反射XSS发生在页面显示恶意用户输入时。问题是“有什么攻击矢量?”因此,“页面可以接收什么用户输入”是同义词吗?

一些消息来源是:

  • 可以来自:的GET请求的查询字符串
    • 电子邮件中的URL
    • 重定向(通过js、301响应或meta标记)从被攻击或恶意的站点重定向

  • 可以来自:的POST请求的主体
    • 来自任何域的AJAX POST请求(相同的原产地策略不会停止请求,只会解析响应)
    • 任何带有method="POST“和action="XSSed_site.com”的表单。表单可以通过js发布,也可以通过单击一个按钮来发布,该按钮可以使用单击劫持来完成。

  • 其他形式的输入,如:
    • 外部js文件,如受攻击页面正在使用的表排序器或库。
    • 显示在受攻击页面上的服务器与服务器之间的通信。
    • 显示在受攻击页面上的任何其他可由攻击者更改的数据。

我意识到“其他形式的输入”部分看起来更像是存储的XSS漏洞,但是每个应用程序都是唯一的,有些可能会将用户输入转换为如何将外部部分组合到页面中(因此得到了反映)。

GET请求中的查询字符串当然不是反射XSS的唯一矢量(不过,这是个不错的问题)。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3533862

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档