为什么 XSS 字符串经常以 > 开头?

信息安全 xss
2021-09-07 20:22:15

可以利用 XSS 的方法之一是使用以下标记:

"><script>alert(document.cookie)</script>

在这里,">before script(<script>标签)是什么意思,为什么要使用它?

1个回答

这样,您可以从双引号属性 ( ") 中转义并关闭前一个标签 ( >),然后再打开包含您的有效负载的脚本标签。它是最基本的 XSS 模式之一。

例子:

<input type="text" value=" $XSS ">

随着你的序列,它变成:

<input type="text" value=" "><script>alert(document.cookie)</script> ">
 ^- 一个完整的标签 ^- 有效载荷垃圾 -^

请注意,您的矢量仅在未过滤 HTML 实体时才有效。

因此,如果您无法摆脱该属性,则它是 XSS 安全的。这不会触发:

<input type="text" value=" <script>alert(document.cookie)</script> ">

');您可以在 Javascript 中使用 XSS(例如结束字符串和函数调用)或使用 SQL 注入看到相同的想法。注入序列的第一个字符通常具有逃避当前上下文的目的。

至于@Mindwin 的强制性SQL 注入 xkcd strip,我徒手圈出了我所指的部分:

在此处输入图像描述