xss绕过之编码绕过

xss编码绕过 首先我们知道解析顺序,URL解码,HTML解码 ,CSS解码,JS解码
1.在服务端接受到请求后,一般是先进行url解码,然后在提取浏览器中参数。所以一般url编码是不能绕过。
2.如果我们输入了带有HTML实体编码值,只要在保证浏览器接受数据时能构建DOM树,就能进行解码操作。
下面为什么会进行url编码,不是为了绕过而进行的,因为HTML实体编码后(&#x63);会是这种情况。而浏览器在发送到服务端传参也是&进行传参分隔的,所以就会产生问题.我们就要进行url编码
3.我们开始实验:<img/src=x οnerrοr=alert(1)//   正常显示一个错误图片           正常触发
3.1当对src,=,然后进行url编码。     失败
3.2分别对x,alert(1),alert,(1),//进行编码html实体编码,url编码       正常触发
3.3当对()进行实体编码,然后进行url编码              失败      
    
伪协议触发实验<a href="javascript:prompt`1`">a</a>            正常弹窗
3.4 我们对javascript:prompt`1`   html实体编码,url编码    正常弹窗
3.5 我们对" =  > 进行实体编码,url编码                                失败

事件触发实验 <body/οnlοad=prompt(1)//
3.6 对分别对prompt(1)  (1)  1 //进行HTML实体编码,url编码       正常弹窗
3.7其他onload,= body 编码进行实体编码 ,url编码                             失败    

js弹窗触发实验<script>confirm`1`</script>
3.8 confirm进行 html实体编码,url编码                             正常弹窗
3.9 对`1` , <>,script  进行实体编码,url编码                        失败

小结:只要不对=和左边,以及(),<之类进行html实体编码,不破坏它的语法结构,就能正常触发


js弹窗触发实验<script>confirm`1`</script>进行js编码尝试(\u00十六进制)这里我们就不需要进行url编码了 
4.0对 confirm 进行unicode进行编码,       正常弹窗
4.1对(1) 进行unicode进行编码                    失败
4.2对sc进行unicode编码                            失败

伪协议触发实验<a href="javascript:prompt`1`">a</a>   js编码尝试
4.3对prompt进行js编码既unicode编码,  正常弹窗
4.4对`1` href  ,= , javascript: 进行unicode编码             失败

事件弹出实验<svg/οnlοad=confirm(1)//     js编码
4.4对confirm 进行unicode编码                  正常弹窗
4.5对(1),=,onload 编码测试               失败

小结:在unioncde编码需要在js环境里解析。当弹窗函数被过滤,可用unincode编码绕过。其他均不行

tip:事情触发一共有32个,如果被过滤了,可尝试更换一个事件。

总结:我们在利用编码绕过时。当伪协议被过滤javascript:prompt`1` 。都可以进行HTML实体编码进行绕过。同样HTML,unicode编码都适用与弹窗函数被过滤情况。html可以编码(1),unicode编码不行。目前个人意见可以有限考虑HTML实体编码。在考虑unicode编码


 

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值