xss(cross-site script)跨站脚本攻击
xss允许恶意web用户将代码植入到提供给其他用户使用的页面中,当其他用户浏览这些网页时,就会执行其中的恶意代码,对受害用户可能采用cookie资料窃取,会话劫持,钓鱼等攻击手段。
xss脚本实例
<html>
<head> XSS test </head>
<body>
<script>alert("xss")</script>
</body>
</html>
<script>alert(xss)</script>
xss输入也可能是html代码段
<meta http equiv="refresh" content="0;" >
嵌入其他网站链接的代码
<iframe src=链接地址 width=0 height =0> </iframe>
xss分类
1.反射型xss
反射型xss也叫非持久性,参数型xss,主要是将恶意的脚本附加到url地址的参数中
例如
http://www.xxx.com/search.php?key="> < script> alert("xss")</script>
一般使用构造好的url发给受害者,受害者点击触发,但是只执行一次
2.存储型xss
比反射型更具威胁性,会影响到web服务器安全
攻击者事先将恶意javascript代码上传或储存在漏洞服务器中,只要受害者包含次恶意代码的页面就会执行恶意代码
3.dom型xss
严格来说dom型xss应该归属到反射型xss,它是基于文档对象模型的一种xss
可能触发dom型xss的属性
1. document.referer;
2. window.name;
3. location;
4. innerHTML;
5. documen.write;
dom型xss与其它两种xss区别在于
xss代码并不需要服务器解析响应的直接参与,触发xss靠的是浏览器端的dom解析
举个例子
<script>
document.getElementById("a").innerHTML="x";
</script>
如果内容x是请求过来的参数,那么攻击者就可以通过构造请求的参数完成dom xss攻击