在没有脚本标签的情况下为 XSS 执行 JavaScript

Bil*_*Bob 10 html javascript security xss

我正在学习 XSS(出于道德目的),我想知道如何在不使用<script>标签的情况下执行一些 JavaScript 代码。这是在

HTML 标签:

"The search term" <p> *JavaScript here* </p> "returned no results"
Run Code Online (Sandbox Code Playgroud)

由于某种原因,脚本标签不起作用。

nv1*_*v1t 7

  1. 尝试放入具有特殊字符的不同类型的字符串,并查看这些字符串中的任何一个是否被编码或输出。(我个人使用'';!--"<XSS>=&{()}
  2. 现在你有三个选择:
    1. 在 HTML 标签内:<>无关紧要,因为您已经在 HTML 标签内。您可以查看此标签是否支持事件并使用某种onload=alert(1)或其他事件。如果<>允许,您可以突破并创建自己的标签'><img src=0 onerror=alert(1)>
    2. HTML标签之外:<>是很重要的。有了这些,您可以打开一个新标签,整个世界都在您的脚下(或者……)
    3. Javascript 内部:嗯……如果你能用 打破一个字符串'",那么你基本上可以写';alert(1)
  3. 根据您的编码字符和字符串输出位置的周围来制作 XSS

<XSS>完全消失:应用程序使用某种strip_tags. 如果你在 HTML 标签之外,并且没有 HTML 标签被列入白名单,很遗憾,我不知道实现 XSS 的任何方法。

制作你自己的有效载荷

有多种方法可以实现这一点,而且无法一一列举。看看这两个网站,它们有很多方法和概念来构建你自己的。归结为:页面允许通过的内容。

  1. https://www.owasp.org/index.php/XSS_Filter_Evasion_Cheat_Sheet#XSS_Locator_.28short.29
  2. https://html5sec.org/


Bub*_*ker 6

您可以使用onclickHTML 元素中显示的属性,这样您就可以创建如下内容:

"The search term" <p> <a href="" onclick="alert('I excuted JavaScript!');">Click me to see the JavaScript work!</a> </p> "returned no results"
Run Code Online (Sandbox Code Playgroud)

现在,当单击元素时,将执行 JavaScript。