转:XSS中的script标签与img标签

我们知道XSS漏洞最常见的检测方式就是输入<script>alert(‘xss’)</script>来确认,大部分人在测试的时候就是直接使用类似<script>alert(‘xss’)</script>这样的输入,如果发现有弹出对话框就说明存在漏洞,如果没有对话框就认为不存在漏洞。那么,只使用<script>标签是否就足够了呢?

我们知道另外也有一些其他的方式比如<img src=’non-exist.jpg’ οnerrοr=”alert(‘xss’)”>等等,那么这些方式之间有没有什么区别呢?

看看下面两个例子,第一个使用的<script>alert(‘xss’)</script>: 

<html>
<script>
function init()
{
document.getElementById("div1").innerHTML="<script>alert('aa')</script>";
}
</script>
<body οnlοad=init()>
<div id="div1"></div>
</body>
</html>
第二个使用的<img src=’non-exist.jpg’ οnerrοr=”alert(‘xss’)”>

<html>
<script>
function init()
{
document.getElementById("div1").innerHTML="<img src='aa.jpg' οnerrοr=\"alert('aa')\"/>";
}
</script>
<body οnlοad=init()>
<div id="div1"></div>
</body>
</html>

 

如果把这2个分别保存成HTML,但是发现第一个<script>alert(‘xss’)</script>不会执行,但是第二个例子是会执行的。想想看为什么?
---------------------
作者:花花浪客
来源:CSDN
原文:https://blog.csdn.net/eatmilkboy/article/details/7560985
版权声明:本文为博主原创文章,转载请附上博文链接!

posted @ 2019-07-31 15:22  durcaidurcai  阅读(1399)  评论(0编辑  收藏  举报