反射式跨站脚本有什么危险?
我知道反射型 XSS 很危险,因为它是可能的。但是使用反射型 XSS 可以执行哪些实际攻击呢?
反射式跨站脚本有什么危险?
我知道反射型 XSS 很危险,因为它是可能的。但是使用反射型 XSS 可以执行哪些实际攻击呢?
当您可以将代码注入页面时,您可以做很多事情。例如,您可以
维基百科的文章做得很好:
非持久性(或反射性)跨站点脚本漏洞是迄今为止最常见的类型。当 Web 客户端提供的数据(最常见于 HTTP 查询参数或 HTML 表单提交中)被服务器端脚本立即用于为该用户生成结果页面时,这些漏洞就会出现,而没有正确清理请求。
由于 HTML 文档具有混合了控制语句、格式和实际内容的扁平串行结构,因此任何未经验证的用户提供的数据包含在没有正确 HTML 编码的结果页面中,都可能导致标记注入。潜在向量的一个典型示例是站点搜索引擎:如果搜索字符串,则搜索字符串通常会逐字重新显示在结果页面上,以指示搜索的内容。如果此响应没有正确转义或拒绝 HTML 控制字符,则会出现跨站点脚本缺陷。
反射攻击通常通过电子邮件或中立网站传递。诱饵是一个看似无辜的 URL,指向一个受信任的站点,但包含 XSS 向量。如果受信任的站点容易受到向量的攻击,单击该链接可能会导致受害者的浏览器执行注入的脚本。
...
非持久 (又名反射):
- Alice 经常访问由 Bob 托管的特定网站。Bob 的网站允许 Alice 使用用户名/密码对登录并存储敏感数据,例如账单信息。
- Mallory 观察到 Bob 的网站包含反射型 XSS 漏洞。
- Mallory 制作了一个 URL 来利用该漏洞,并向 Alice 发送一封电子邮件,诱使她以虚假的借口点击该 URL 的链接。此 URL 将指向 Bob 的网站(直接或通过 iframe 或 ajax),但将包含 Mallory 的恶意代码,该网站将反映该代码。
- Alice 在登录 Bob 的网站时访问了 Mallory 提供的 URL。
- 嵌入在 URL 中的恶意脚本在 Alice 的浏览器中执行,就好像它直接来自 Bob 的服务器(这是实际的 XSS 漏洞)。该脚本可用于将 Alice 的会话 cookie 发送给 Mallory。然后,Mallory 可以在 Alice 不知情的情况下使用会话 cookie 窃取 Alice 可用的敏感信息(身份验证凭据、计费信息等)。
您对此有任何疑问吗?
针对它的标准 XSS 防御工作;例如,清理不受信任的用户输入;例如,只让他们插入一小部分 HTML(来自安全的受限标记语言)或通过一个好的 html 清理器/净化器,不要在脚本中使用不安全的模式(例如,用户输入的 javascript 中的 eval),理想情况下使用具有CSP和沙盒等功能的浏览器。
来自OWASP:
反射型 XSS 攻击:反射型攻击是指将注入的代码反射到 Web 服务器之外的攻击,例如在错误消息、搜索结果或任何其他响应中,其中包括作为请求的一部分发送到服务器的部分或全部输入. 反射攻击通过另一条路径传递给受害者,例如在电子邮件消息中或在某些其他 Web 服务器上。当用户被诱骗点击恶意链接或提交特制表单时,注入的代码会传播到易受攻击的 Web 服务器,从而将攻击反射回用户的浏览器。浏览器然后执行代码,因为它来自“受信任的”服务器。
这意味着我可以将恶意代码作为查询参数的一部分(与号或问号后的url部分。我可以发送恶意电子邮件,使用bit.ly或类似的,或结合其他攻击来获取你发出了一个无意的请求,这不是针对 XSS 的过滤。
在攻击方面,网络钓鱼将是一个大问题,让某人信任我的邪恶链接。这种类型的攻击也可以与 CSRF 或多种攻击中的任何一种结合使用,任何时候攻击者都可以让另一个站点运行他们的代码,并且您在启用 javascript 的情况下运行该页面,这将是糟糕的。
一些链接
我建议你看看 BeEF - The Browser Exploitation Framework http://beefproject.com/ 它基本上是一个展示 XSS 危险的工具。通过使用反射或持久性 XSS 攻击,beef 挂钩给定网站,并允许攻击者控制给定页面上的浏览器。BeEF 与 Metasploit 集成,允许攻击者将浏览器漏洞等发送到用户的浏览器。您可以窃取数据、窃取会话等。那里也有一些不错的视频。
BeEF 能做的任何事情,攻击者也能做。XSS 可能非常糟糕。