#渗透测试#漏洞挖掘#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…

1.4 java反射机制 简单的java反射机制实践

这是一个项目用于学习反射 第一个demo是利用反射构建一个对象转换为JSON 第二个demo是用于利用类的名字以及方法名就可以直接执行的实例 package com.zy.reflectiondemo.utils;import com.zy.reflectiondemo.annotation.JsonField;import java.lang.reflect.Field; import jav…

C#设计模式(行为型模式):观察者模式

C#设计模式:观察者模式,让对象间通信更优雅 在软件开发中,我们经常会遇到一个对象的状态发生改变,其他对象需要自动更新或做出相应反应的场景。例如: GUI事件处理: 当用户点击按钮时,按钮需要…

【Vue】:解决动态更新 <video> 标签 src 属性后视频未刷新的问题

问题描述 在 Vue.js 项目&#xff0c;当尝试动态更新 <video> 标签的 <source> 元素 src 属性来切换视频时&#xff0c;遇到了一个问题&#xff1a;即使 src 属性已更改&#xff0c;浏览器仍显示旧视频。具体表现为用户选择新视频后&#xff0c;视频区域继续显示之…

BerOS 文件系统路径归一化问题及其 Python 实现

题目背景 本文将讨论一道与操作系统路径归一化有关的问题&#xff0c;该问题来自 BerOS 文件系统 的设计。BerOS 是一个新型操作系统&#xff0c;其文件路径系统允许路径中的分隔符 / 重复出现。例如&#xff0c;以下路径被视为等价的&#xff1a; /usr//local//nginx/sbin//…

Halcon 显示异常

//For Halcon System HOperatorSet.SetSystem("clip_region", "false"); set_system( clip_region, false) *旋转 hom_mat2d_identity (HomMat2DIdentity1) hom_mat2d_rotate (HomMat2DIdentity1, rad( 90), 0, 0, HomMat2DRotate) affine_trans_region …

window11 wsl mysql8 错误分析:1698 - Access denied for user ‘root‘@‘kong.mshome.net‘

&#x1f6a8; 错误分析&#xff1a;1698 - Access denied for user rootkong.mshome.net 这个错误是因为 MySQL 的 root 用户 使用 auth_socket 插件进行身份验证&#xff0c;而不是使用密码。因此&#xff0c;当你尝试从 远程主机 连接时&#xff0c;MySQL 会拒绝访问。 ✅ …

CentOS 7安装Docker详细教程

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

Java:缓存:LinkedHashMap实现Lru

文章目录 Lru源码分析 ​​​​​​​​​​​​​​LinkedHashMap维护一个LinkedHashMapEntry<K,V>的双向链表对LinkedHashMap的增删查操作,也会对链表进行相同的操作并改变链表的链接顺序小结使用方法​​​​​​​​​​​​​​应用总结Lru Least Recently Used,…

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

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

Git 仓库与文件管理笔记

Git 的三种仓库概念 本地仓库 (Local Repository) 位于本地 .git 文件夹中通过 git init 或 git clone 创建存储完整的项目历史和分支信息 远程仓库 (Remote Repository) 位于 GitHub、GitLab 等平台服务器使用 git remote -v 查看所有远程仓库默认远程仓库名通常为 origin 工…

【人工智能数据科学与数据处理】——深入详解人工智能数据科学与数据处理之数据可视化与数据库技术

深入详解人工智能数据科学与数据处理 在人工智能&#xff08;AI&#xff09;的数据科学与数据处理中&#xff0c;数据可视化与数据库技术是两项至关重要的技能。本文将深入探讨数据可视化中的可视化技巧及其应用&#xff0c;以及关系型数据库&#xff08;如MySQL、PostgreSQL&…

DES密码的安全性分析(简化版本)

DES仍是世界上使用最广的&#xff08;DES发行后20年&#xff0c;互联网的兴起&#xff0c;人们开始觉得DES不安全了&#xff0c;但DES的实现成本也越来越低&#xff09; 宏观分析&#xff1a; 密钥空间方面&#xff1a; 密钥长度&#xff1a;DES 算法使用 56 位的密钥对数据…

Elasticsearch 文档批处理 混合处理 批量操作

介绍 在 Elasticsearch 中&#xff0c;批量操作&#xff08;Bulk API&#xff09;允许你一次执行多个文档操作&#xff08;如索引、更新、删除&#xff09;以提高效率。批量操作对于大规模数据的插入、更新或删除尤其有用&#xff0c;可以显著提高处理速度。 批量操作通常是通…

计算机网络原理(谢希仁第八版)第4章课后习题答案

第四章 网络层 详细计算机网络&#xff08;谢希仁-第八版&#xff09;第四章习题全解_计算机网络第八版谢希仁课后答案-CSDN博客 1.网络层向上提供的服务有哪两种&#xff1f;是比较其优缺点。网络层向运输层提供 “面向连接”虚电路&#xff08;Virtual Circuit&#xff09;服…

实现单例模式的五种方式

如何实现一个单例 1、构造器需要私有化 2、提供一个私有的静态变量 3、暴露一个公共的获取单例对象的接口 需要考虑的两个问题 1、是否支持懒加载 2、是否线程安全 1、饿汉式 public class EagerSingleton {private static final EagerSingleton INSTANCE new EagerSi…

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

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

数据挖掘——决策树分类

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

自动化文件监控与分类压缩:实现高效文件管理

自动化文件监控与分类压缩&#xff1a;实现高效文件管理 引言 在现代数据处理和文件管理中&#xff0c;如何高效地管理和归档大量文件是一个常见的挑战。特别是在需要根据文件类型进行分类并定期归档的场景下&#xff0c;手动操作不仅耗时且容易出错。为此&#xff0c;我们开…

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

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