XSS:这样安全吗?

Tre*_*eam 0 html javascript php security xss

我有以下代码:

echo "<span title='{$_GET["t"]}'>Foo</span>";
Run Code Online (Sandbox Code Playgroud)

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

  1. url?t=Foo" onclick="alert(1)"
  2. url?t=<script>alert(1);</script>

浏览器在这里做了一些神奇的工作吗?有没有攻击媒介?

Mar*_*c B 8

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

  1. <span title='Foo" onclick="alert(1)"'>Foo</span>
  2. <span title='<script>alert(1)</script>'>Foo</span>

这些都不是有效的html/javascript.第一个在引号中有不匹配,因此标签被破坏.第二个没有javascript.它包含字符的title属性<,s,c,等...这不是JavaScript的.这只是一些看起来像javascript的TEXT .

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

一个工作的例子是:

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

这将产生

<span title=''><script>alert('1');</script><span title=''>Foo</span>
xxxxxxxxxxxxx0000000000000000000000000000000000000000000xxxxxxxxxxxx
Run Code Online (Sandbox Code Playgroud)

其中x代表原始文件,并0代表您注入的内容.