#渗透测试#漏洞挖掘#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等  工具:菜刀、蚁见、冰蝎代码:加密混淆、变量覆盖、异或生成行为:指纹变异、自写轮子检测:常规安全脚本工具使用

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Logstash02】企业级日志分析系统ELK之Logstash 输入 Input 插件

Logstash 使用 Logstash 命令 官方文档 https://www.elastic.co/guide/en/logstash/current/first-event.html #各种插件 https://www.elastic.co/guide/en/logstash/current/input-plugins.html https://www.elastic.co/guide/en/logstash/current/filter-plugins.html htt…

CentOS 7安装Docker详细教程

本文以 CentOS7.8 为例安装 Docker 26.1.4 、Docker Compose、以及 Docker 镜像仓库。 安装方式1:自动安装(使用官方脚本) 使用官网一键安装命令: curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun 或 使用国内 daocloud 一键安…

通过代理用户功能可以实现生产用户的应用滚动修改密码

Oracle通过代理用户功能可以实现生产用户的应用滚动修改密码。 测试例子: 生产用户为jyc密码为jyc 现在要求修改jyc的密码为abc,意味着所有应用都得停止同时修改。 此时可以考虑新建代理用户proxy_jyc,密码为jyc1(实际修改建议…

永磁同步电机控制算法--最大转矩电流比控制((升级版)公式法、曲线拟合法、查表法)

一、原理介绍 id0控制方法在电机输出相同的电磁转矩下电机的定子电流并不是最小的,因此,采用最大转矩电流比控制方法,使得电机在输出相同的电磁转矩下电机定子电流最少,实现该系统的原理框图如图所示。 最大转矩电流比控制也称单位电流输出最大转矩的控制,即控制id以追求最大转…

数据挖掘——决策树分类

数据挖掘——决策树分类 决策树分类Hunt算法信息增益增益比率基尼指数连续数据总结 决策树分类 树状结构,可以很好的对数据进行分类; 决策树的根节点到叶节点的每一条路径构建一条规则;具有互斥且完备的特点,即每一个样本均被且…

小红书怎么看ip所属地?小红书ip属地为什么可以变

小红书,作为当下热门的社交电商平台,不仅为用户提供了丰富的购物与分享体验,还通过展示用户IP属地信息,增强了网络社交的透明度和真实性。然而,不少用户发现,小红书上的IP属地并非一成不变,这引…

springboot使用hutool captcha +vue实现图形验证码

一、效果 使用hutool captcha实现简单的图形验证码&#xff0c;可以参考官网概述 | Hutool 二、实现步骤 1、导入依赖 <!--hutool包--> <dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId><version>5.…

vue3+Echarts+ts实现甘特图

项目场景&#xff1a; vue3Echartsts实现甘特图;发布任务 代码实现 封装ganttEcharts.vue <template><!-- Echarts 甘特图 --><div ref"progressChart" class"w100 h100"></div> </template> <script lang"ts&qu…

EdgeX规则引擎eKuiper

EdgeX 规则引擎eKuiper 一、架构设计 LF Edge eKuiper 是物联网数据分析和流式计算引擎。它是一个通用的边缘计算服务或中间件,为资源有限的边缘网关或设备而设计。 eKuiper 采用 Go 语言编写,其架构如下图所示: eKuiper 是 Golang 实现的轻量级物联网边缘分析、流式处理开源…

【AIGC-ChatGPT进阶提示词指令】AI美食助手的设计与实现:Lisp风格系统提示词分析

引言 在人工智能助手的应用领域中&#xff0c;美食烹饪是一个既专业又贴近生活的方向。本文将详细分析一个基于Lisp风格编写的美食助手系统提示词&#xff0c;探讨其结构设计、功能实现以及实际应用效果。 提出你的菜系&#xff0c;为你分析&#xff0c;并生成图片卡片 提示词…

【从零开始入门unity游戏开发之——C#篇42】C#补充知识——随机数(Random)、多种方法实现string字符串拼接、语句的简写

文章目录 一、随机数1、Random.Next()生成随机整数示例&#xff1a;生成一个随机整数生成指定范围内的随机整数 2、Random.NextSingle生成随机浮点数示例&#xff1a;生成随机浮点数 3、 生成随机字母或字符示例&#xff1a;生成随机字母示例&#xff1a;生成随机小写字母 二、…

吐卡机开发——指令合集—未来之窗行业应用跨平台架构

序号指令10A 09 02 01 01 0D DE20A 09 02 02 01 FD DE30A 09 02 03 01 6D DF40A 09 02 04 01 5D DD50A 09 02 05 01 CD DC60A 09 02 06 01 3D DC70A 09 02 07 01 AD DD80A 09 02 08 01 5D D890A 09 02 09 01 CD D9100A 09 02 10 01 5D D2110A 09 02 11 01 CD D3120A 09 02 12 0…

fpga系列 HDL:verilog 常见错误与注意事项 位宽不匹配+case 语句中没有覆盖所有情况

位宽不匹配问题 信号或操作数的位宽不匹配&#xff0c;可能导致仿真或综合错误。 module top (input wire [3:0] a,output wire [7:0] b );assign b a; endmodulecase 语句中没有覆盖所有情况 module top (input wire [1:0] sel,input wire [7:0] a,input wire [7:0] b,in…

Linux中操作中的无痕命令history技巧

当我们需要查看Linux下的操作记录时&#xff0c;就可以用history命令来查看历史记录 1、关闭history记录功能&#xff0c;如果不想让别人看到自己在Linux上的操作命令&#xff0c;可以用这个命令 set o history 2、打开history记录功能 set -o history3、清空记录 histor…

计算机网络练习题

学习这么多啦&#xff0c;那就简单写几个选择题巩固一下吧&#xff01; 1. 在IPv4分组各字段中&#xff0c;以下最适合携带隐藏信息的是&#xff08;D&#xff09; A、源IP地址 B、版本 C、TTL D、标识 2. OSI 参考模型中&#xff0c;数据链路层的主要功能是&#xff08;…

优化租赁小程序提升服务效率与用户体验的策略与实践

内容概要 在这个快速发展的商业环境中&#xff0c;租赁小程序成为了提升服务效率和用户体验的重要工具。通过对用户需求的深入挖掘&#xff0c;我们发现他们对于功能的便捷性、响应速度和界面的友好性有着极高的期待。因此&#xff0c;针对这些需求&#xff0c;完善租赁小程序…

BP神经网络的反向传播算法

BP神经网络&#xff08;Backpropagation Neural Network&#xff09;是一种常用的多层前馈神经网络&#xff0c;通过反向传播算法进行训练。反向传播算法的核心思想是通过计算损失函数对每个权重的偏导数&#xff0c;从而调整权重&#xff0c;使得网络的预测输出与真实输出之间…

活动预告 | Microsoft 安全在线技术公开课:通过扩展检测和响应抵御威胁

课程介绍 通过 Microsoft Learn 免费参加 Microsoft 安全在线技术公开课&#xff0c;掌握创造新机遇所需的技能&#xff0c;加快对 Microsoft Cloud 技术的了解。参加我们举办的“通过扩展检测和响应抵御威胁”技术公开课活动&#xff0c;了解如何更好地在 Microsoft 365 Defen…

Windows onnxruntime编译openvino

理论上来说&#xff0c;可以直接访问 ONNXRuntime Releases 下载 dll 文件&#xff0c;然后从官方文档中下载缺少的头文件以直接调用&#xff0c;但我没有尝试过。 1. 下载 OpenVINO 包 从官网下载 OpenVINO 的安装包并放置在 C:\Program Files (x86) 路径下&#xff0c;例如…

Vue3 中的插槽

Vue3 中插槽的使用&#xff0c;插槽是 Vue 中的一个特别特性&#xff0c;插槽就是模版内容。例如<h1>标题 1</h1>标题 1 就是插槽&#xff0c;Vue 是无法识别模板内容的&#xff0c;只能通过属性进行传递。Slot 主要包括默认、具名和作用域。Slot开发起来难度不大&…