【发布时间】:2012-03-13 12:59:57
【问题描述】:
我正在尝试了解如何在外部包含 JavaScript,以便代码打印到页面。
当我将 JavaScript 直接插入页面代码时,它会打印“hello”
<html>
<head>
<title></title>
</head>
<body>
<script type="text/javascript">document.write("hello");</script>
</body>
</html>
但是,当我将相同的代码放入外部文件时说“javascript.js”并将其 (src) 包含在 html 中,它不会打印“hello”?
<html>
<head>
<title></title>
<script type="text/javascript" src="http://thewebsite.com/javascript.js"></script>
</head>
<body>
</body>
</html>
我正在尝试了解如何让该外部 JavaScript 文件运行并打印“hello”。
如果黑客要在其中包含以下标记,例如 textarea 以从恶意服务器调用他的恶意脚本,那么 XSS 是如何工作的?
<script type="text/javascript" src="http://thewebsite.com/javascript.js"></script>
这是“javascript.js”文件中的内容:
<script type="text/javascript">
document.write("hello");
</script>
该文件位于同一个域中,因此同源策略不应在此处应用,如前所述,如果我直接插入代码,它确实有效,但当我尝试将其包含为单独的文件时则无效。
我认为包含 JavaScript 作为外部文件,应该打印外部文件的内容(即本例中的“hello”),就好像它直接插入到 html 页面中一样?
【问题讨论】:
-
你能告诉你在控制台上得到了什么吗?以及您使用的浏览器。我能够得到你想要做的事情。
-
你的 javascript 文件中不需要
-
Firefox 浏览器 3.6.18 并且没有任何内容打印到屏幕上。我正在尝试做一个虚拟 XSS,我在页面上有一个 textarea,我插入 JavaScript src 标记以尝试让它从 src 包含的外部文件中的代码将“hello”打印到页面。
-
感谢 Ajai,您解决了,外部 javascript 文件中的
-
你插入了javascript src标签?对不起,我无法理解。如果您想执行持久性 xss 攻击,您需要将整个 js 代码注入到 textarea 中,该代码未经解析并存储在服务器中。因此,任何访问您的个人资料的人都将在登录时执行该脚本。这就是 xss 持久攻击的工作原理。现在,当您尝试加载外部 js 文件时,您需要包含整个脚本
<script type="text/javascript" src="http://thewebsite.com/javascript.js"></script>而不仅仅是 javascript 标签的 src(我不知道这意味着什么,但无论如何)
标签: javascript xss