XSS:这怎么安全?
XSS: How is this safe?
我有以下代码:
echo "<span title='{$_GET["t"]}'>Foo</span>";
显然,此代码不是 XSS-Save,但是当我调用以下 URL 时,没有执行 JavaScript:
url?t=Foo" onclick="alert(1)"
url?t=<script>alert(1);</script>
浏览器是不是在做一些神奇的工作?有没有攻击向量?
为什么会这样?您将生成以下内容:
<span title='Foo" onclick="alert(1)"'>Foo</span>
<span title='<script>alert(1)</script>'>Foo</span>
两者都无效 html/javascript。第一个在引号中不匹配,因此标签已损坏。第二个没有 javascript。它有一个包含字符 <
、s
、c
等的 title 属性...那不是 javascript。这只是一些 看起来 像 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
代表你注入的内容
如果您试图测试它是否存在漏洞,您需要结束单引号并关闭标签,然后 添加您的 javascript。类似于以下内容:
?t=xss'><script>alert('hi')</script><span
我有以下代码:
echo "<span title='{$_GET["t"]}'>Foo</span>";
显然,此代码不是 XSS-Save,但是当我调用以下 URL 时,没有执行 JavaScript:
url?t=Foo" onclick="alert(1)"
url?t=<script>alert(1);</script>
浏览器是不是在做一些神奇的工作?有没有攻击向量?
为什么会这样?您将生成以下内容:
<span title='Foo" onclick="alert(1)"'>Foo</span>
<span title='<script>alert(1)</script>'>Foo</span>
两者都无效 html/javascript。第一个在引号中不匹配,因此标签已损坏。第二个没有 javascript。它有一个包含字符 <
、s
、c
等的 title 属性...那不是 javascript。这只是一些 看起来 像 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
代表你注入的内容
如果您试图测试它是否存在漏洞,您需要结束单引号并关闭标签,然后 添加您的 javascript。类似于以下内容:
?t=xss'><script>alert('hi')</script><span