绕过XSS-Filter

XSS-Filter: 基于黑白名单的安全过滤策略,实际上是一段过滤函数

绕过:

(1)利用< >标记注射Html和Javascript
通过引入< >操作HTML标签,然后利用标签任意插入由JavaScript编写的恶意脚本代码。

(2)利用HTML标签属性值执行XSS
很多HTML标记中的属性都支持javascript:[code]伪协议形式,声明URL的主体是JavaScript代码,由JavaScript的解释器运行,但不是所有Web浏览器都支持JavaScript伪协议,也不是所有脚本都是JavaScript,还可以是Vbscript

(3)空格、回车和TAB
利用空格、回车和TAB拆分关键字绕过限制
在JavaScript中,如果到换行处不是一个完整的语句,那么换行符不会被解释为语句终止

(4)对标签属性值转码
因为HTML中属性值本身支持ASCII码形式,因此可以将

<img src="javascript:alert('XSS');">

替换为

<img src="javascrip&#116&#58alert(/XSS/);" >

还可以把空格、回车、换行和TAB以ASCLL码形式插入,或者把&#01、&#02等字符插入到JavaScript的头部,如:

<img src="&#01;javascript:alert(/a/)">

(5)产生自己的事件
JavaScript与HTML之间的交互通过事件实现,事件是用户或浏览器自身执行的某种动作,响应事件的函数叫事件处理函数(或事件侦听器)

<img src="#" onerror=alert(/xss/)>

onerror是img标记的一个事件,只要页面中发生错误,就立即被激活,而在上面的代码中,浏览器会试图解析src中引用的图片地址,而该图片不存在,所以onerror被触发
在这里插入图片描述

(6)利用CSS跨站剖析
可以使用CSS执行JavaScript代码,CSS样式表不需要嵌入到HTML代码中,而是可以从其他文件甚至是从不同的目标机器上进行引用

(7)扰乱过滤规则
可以利用大小写转换或者混合使用、使用/代替空格、插入/**/注释来干扰绕过关键字,以及将CSS关键字转码等形式扰乱过滤

(8)缩短字节
面对产生XSS处的变量长度限制,一方面可以利用事件缩短所需字节,另一方面也可以将XSS Payload写在"location.hash"中,而根据HTTP协议,"location.hash"的内容不会在HTTP包中发送

(9)使用base标签
base标签可以指定其后的标签取得的地址,从而通过在远程服务器上伪造图片、链接或脚本,劫持当前页面中的所有使用“相对路径”的标签

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值