XSS:这样安全吗?

时间:2016-09-14 21:11:41

标签: javascript php html security xss

我有以下代码:

echo "<span title='{$_GET["t"]}'>Foo</span>";

显然,此代码不是XSS-Save,但是当我调用以下URL时,不会执行任何JavaScript:

  1. url?t=Foo" onclick="alert(1)"
  2. url?t=<script>alert(1);</script>
  3. 浏览器在这里做了一些神奇的工作吗?有没有攻击媒介?

2 个答案:

答案 0 :(得分:8)

为什么会这样?您正在生成以下内容:

  1. <span title='Foo" onclick="alert(1)"'>Foo</span>
  2. <span title='<script>alert(1)</script>'>Foo</span>
  3. 这两者都不是有效的html / javascript。第一个在引号中有不匹配,因此标签被破坏。第二个没有javascript。它有一个title属性,其中包含字符<sc等等......这不是javascript。它只是一些 LOOKS 的文字,如javascript。

    要做XSS,无论你注入 HAS 来产生有效的代码,否则它只是你注入的任何环境的语法错误。

    一个工作的例子是:

    http://example.com/script.php?t='><script>alert('1');</script><span+title='
    

    会生成

    <span title=''><script>alert('1');</script><span title=''>Foo</span>
    xxxxxxxxxxxxx0000000000000000000000000000000000000000000xxxxxxxxxxxx
    

    x表示原始文档,0表示您注入的内容。

答案 1 :(得分:3)

如果您正在尝试测试这是否容易受到攻击,则需要结束单引号并关闭标记,然后添加您的javascript。如下所示:

?t=xss'><script>alert('hi')</script><span