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

时间:2016-05-25 10:58:29

标签: javascript html security xss

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

HTML标记内:

"The search term" <p> *JavaScript here* </p> "returned no results"

由于某种原因,脚本标记无效。

3 个答案:

答案 0 :(得分:3)

您可以使用HTML元素中显示的onclick属性,以便您可以创建以下内容:

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

现在点击元素时,JavaScript将被执行。

答案 1 :(得分:3)

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

答案 2 :(得分:0)

https://stackoverflow.com/a/53430230/895245

提到了另一个
<a href="javascript:alert(1)">asdf</a>

在Chromium 81上工作。

更重要的也许是如何对其进行消毒的问题,例如: