锐单电子商城 , 一站式电子元器件采购平台!
  • 电话:400-990-0325

绕过 Web 应用程序中的 XSS 过滤器

时间:2022-12-29 02:30:00 电容接触器lc1d40k

避免跨站脚本 (XSS) 漏洞的两种主要技术是 XSS 过滤和 XSS 然而,转换。XSS 过滤是不可取的,因为它通常可以用巧妙的策略来避免。

在本教程中,我们将解释一些黑客可能在其恶意代码中使用的技术,以便轻松绕过 Web 在应用程序中 XSS 过滤器。

XSS 过滤工作原理

XSS 过滤器可以部署为跨站点脚本攻击向量的普通模式,并从用户输入数据中删除此类代码片段。

最常用的是正则表达式发现模式。这是非常困难的,因为跨网站脚本的有效负载模式也可以合法部署为网页内容。因此,过滤器应避免误报。

此外,Firefox、Google Chrome 和 Internet Explorer 等当代 Web 格式错误的浏览器 HTML 代码具有很强的容错能力。

此外,JavaScript 它非常灵活,通常可以通过各种方式表达同样的实用性。黑客可以通过故意构建来避免常见 XSS 使用这些情况的代码进行搜索模式。

从理论上讲,构建实用可靠 XSS 过滤器是可行的。然而,过滤器的复杂性可能是巨大的,黑客有可能发明一种新的绕过方法。因此,转换被认为是一种更直接的技术,以防止跨网站脚本攻击。

XSS 过滤器绕过技术

部署字符编码

后续可以启动过滤器的编码字符,部署过滤器的编码字符,以克服过滤器。

黑客使用多种编码方法,如 HTML 实体和 Base64.编码取决于需要编码的内容。href标签 URL 支持 URL 但不支持标签名称。

例如,欺骗搜索是很常见的 ASCII 黑客可以替换模式过滤器

javascript:alert(document.cookie)

jav script:alert(document.cookie)

请记住,演员可以跳过任何或所有分号。

如果过滤器知道如何确认编码尝试,参与者可以尝试通过部署填充的十进制编码和跳过分号来欺骗它。

例如,以下等效alert

alert

欺骗正则表达式

有时,绕过过滤器只需要发现一种欺骗正则表达式的技术。

例如,攻击者可以使用带括号的虚假标签,例如:

如果正则表达式没有正确编写,它将假定脚本标记以初始右括号结尾。

此外,请注意如何调用该文件以模仿 JPG 图像和搜索特定文件扩展名的技巧过滤器。

使用非典型事件处理程序

尽管许多 XSS 过滤器在普通事件处理程序(如onerroronfocusonclickonmouseover或)中测试可能的 JavaScript onclick,但参与者可以尝试使用各种其他事件处理程序。例如,与选框相关的事件处理程序,如onfinishonstart

可以在网上找到最广泛的处理程序列表。

使用非典型分隔符

有多种字符可以部署为分隔符来代替空格。现代网络浏览器仍将正确执行代码。

例如,攻击者可以部署单引号、双引号和反引号(仅适用于许多 Web 浏览器)。

一个例子是:

现代网络浏览器通常非常宽容,甚至可以正确执行后续代码: