维基百科提供了关于最常见方案之一的信息,用于利用反射的跨站点脚本攻击--使用某种程度的社会工程来诱使毫无戒心的用户单击恶意链接:
现在,当网站碰巧是一个页面驱动的应用程序时,这通常是一个很好的例子--该漏洞是通过让用户向应用程序提交恶意有效负载(更重要的是,登录时发出GET请求)来利用的,该漏洞反映在响应中。
是否还有更有趣的攻击矢量,特别是当应用程序使用大量AJAX时,大多数请求都是通过HTTP发出的?
编辑
如果我不清楚,我想知道适用于反映XSS攻击的各种类型的攻击向量,特别是当应用程序的客户端层的实现方式不同时。基于页面的应用程序将有一个涉及用户发出的HTTP请求的攻击向量,但是了解这对于厚客户端应用程序(尤其是使用发出HTTP请求的XMLHttpRequest对象的应用程序)的效果会很有趣。在客户端渲染中使用的不同机制显然需要研究不同的攻击向量。在某些情况下,可能没有任何适用的攻击矢量;问题是为了引起这样的反应。
发布于 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。
发布于 2010-08-24 12:35:08
benlbroussard已经谈到了这一点,但我想重申这一点,因为它很重要。胖客户,瘦客户,发帖,获取,放置;这些都不重要。XSS漏洞是基于一个站点错误地将一些输入呈现给某人。
如果您正在寻找一个严格的反射攻击,那么有效载荷不应该存储在目标应用程序的任何位置。在这种情况下,我认为您是对的,胖客户端将倾向于更有抵抗力,因为GET是发起反射XSS攻击的最简单方法。
关于更多的攻击向量,胖客户端架构的一个有趣之处是实体编码。瘦客户端可以对任何事情进行实体编码,并使用它来完成,这是非常有益的。胖客户端应该对初始GET的响应进行实体编码,但是以JavaScript为头的异步请求不能(完全)编码并且是有效的JS。这会增加不对应该编码的内容进行编码的可能性,这是创建XSS矢量的一大步。
讲得通?
卡尔
发布于 2010-08-23 23:48:34
反射XSS发生在页面显示恶意用户输入时。问题是“有什么攻击矢量?”因此,“页面可以接收什么用户输入”是同义词吗?
一些消息来源是:
我意识到“其他形式的输入”部分看起来更像是存储的XSS漏洞,但是每个应用程序都是唯一的,有些可能会将用户输入转换为如何将外部部分组合到页面中(因此得到了反映)。
GET请求中的查询字符串当然不是反射XSS的唯一矢量(不过,这是个不错的问题)。
https://stackoverflow.com/questions/3533862
复制相似问题