WAF相关知识及安全狗的部署和绕过

news2024/12/26 13:46:23

文章目录

  • 一:WAF基础知识
    • (一) WAF简介
    • (二) WAF工作原理
      • 1) 流量识别
      • 2) 攻击检测
      • 3) 攻击防御
      • 4) 记录日志
    • (三) WAF分类
    • (四) WAF检测
      • 1) 手动检测
      • 2) 工具检测
  • 二:安全狗使用指南
    • (一) 安全狗的下载
    • (二) 安全狗的安装
    • (三) 安全狗绕过

一:WAF基础知识

(一) WAF简介

(二) WAF工作原理

1) 流量识别

2) 攻击检测

3) 攻击防御

4) 记录日志

(三) WAF分类

(四) WAF检测

1) 手动检测

2) 工具检测

二:安全狗使用指南

(一) 安全狗的下载

(二) 安全狗的安装

(三) 安全狗绕过

一:WAF基础知识

(一)WAF简介
WAF即Web应用程序防火墙通过过滤和监视Web应用程序与Internet之间的HTTP通信来帮助保护Web应用程序,Web Application Firewall (WEB 应用防护系统)。WAF与传统的 Firewall (防火墙) 不同,WAF 针对的是应用层。WAF可以用来屏蔽常见的网站漏洞攻击,如SQL注入,XML注入、XSS等。WAF针对的是应用层而非网络层的入侵,从技术角度应该称之为Web IPS。

(二)WAF工作原理
WAF的工作原理主要分为4个步骤:流量识别——>攻击检测——>攻击防御——>记录日志
1)流量识别:识别来自客户端的HTTP请求,并对HTTP请求包进行解析。WAF可以检查请求头、请求体、Cookie、URL参数等信息,并识别其中的攻击。
2)攻击检测:对识别的HTTP请求包进行攻击检测,匹配防御规则模块。WAF可以使用多种技术来检测攻击,例如正则表达式、特征匹配、行为分析等。WAF可以检测多种攻击,包括SQL注入、XSS、CSRF、命令注入等。
3)攻击防御:WAF根据检测结果采取相应的措施,例如拦截请求、阻止访问、记录事件等。WAF可以使用多种技术来响应攻击,例如重定向、报错、拦截、返回 403 页面或者跳转到指定页面或者不返回任何数据,抑或拉黑IP。
4)记录日志:WAF在处理的过程中会将拦截处理的日志记录下来,方便用户在后续中可以进行日志查看分析。

(三)WAF分类
WAF主要分为嵌入式WAF、非嵌入式WAF:
1)嵌入式WAF: 指的是网站内置的WAF。既来自网站内部的过滤,直接出现在网站代码中,比如过滤敏感字符,对潜在的威胁的字符进行编码、转义等。
2)非嵌入式WAF:指的是硬件型WAF、云WAF、软件型WAF之类的
(1)硬件WAF:硬件WAF通常是一种独立设备,它可以与网络交换机、路由器等设备集成,拦截来自外部网络的流量,并对Web应用程序进行保护。硬件WAF通常具有高性能和低延迟,适用于高流量的Web应用程序。硬件WAF的价格一般比较昂贵,支持多种方式部署到Web服务器前端,识别外部的异常流量,并进行阻断拦截,为Web应用提供安全防护。
代表产品有:Imperva、天清WAG等
(2)软件WAF:软件WAF通常是一种安装在服务器上的应用程序,可以通过修改Web服务器或代理服务器的配置文件实现。软件WAF可以与多种Web服务器和应用程序框架集成,包括Apache、Nginx、IIS等。软件WAF通常具有灵活性和易于配置的优点,适用于多种Web应用程序。软件WAF安装过程比较简单,需要安装到需要安全防护的web服务器上,以纯软件的方式实现。
代表产品:安全狗,云锁,D盾等
(3)云WAF: 云WAF通常是一种基于云的服务,可以将Web应用程序的流量转发到云端进行处理。云WAF可以提供全球分布的节点,从而提高Web应用程序的可用性和性能。云WAF通常具有弹性扩展、自动升级等优点,适用于高可用性和高性能的Web应用程序。且云WAF的维护成本低,不需要部署任何硬件设备,云WAF的拦截规则会实时更新。对于部署了云WAF的网站,我们发出的数据请求首先会经过云WAF节点进行规则检测,如果请求匹配到WAF拦截规则,则会被WAF进行拦截处理,对于正常、安全的请求则转发到真实Web服务器中进行响应处理。
代表产品有:阿里云云盾,腾讯云WAF等

(四)WAF检测
在实际的渗透测试过程中,经常会碰到网站存在WAF的情况。网站存在WAF,意味着不能使用安全工具对网站进行测试,因为一旦触碰了WAF的规则,轻则丢弃报文,重则拉黑IP。因此,需要安全且万完整的完成渗透测试工作第一步就需要判断目标站点是否使用WAF产品。
WAF检测方式:
1)手动检测:在目标URL后加上最基础的测试语句,并放在一个不存在的参数中。因为选用的参数是不存在的,不会对网站本身执行有影响,所以正常情况应该显示正常,但是如果访问被拦截,就说明存在WAF。简言之,可输入不合规字符,查看是否触发WAF防护机制。
2)工具检测:sqlmap自带有WAF识别模块可以识别出WAF的种类。但目标的WAF并没有什么特征,sqlmap只能识别出类型为Generic,详细的识别规则在sqlmap的WAF目录下,在该目录下也可以自定义waf的识别规则。
SQLmap检测命令: sqlmap.py -u “http://xxx.com” –identify -waf --batch

二:安全狗使用指南
(一):安全狗的下载
第一步:进入安全狗下载官网::http://free.safedog.cn/
在这里插入图片描述
第二步:点击“产品”——>选择“免费安全产品”——>选择所需要安装的安全产品:“网站安全狗”、“服务器安全狗”.
在这里插入图片描述
第三步:选择系统所匹配的安全狗安装包,点击下载。
在这里插入图片描述
(二):安全狗的安装
注意:安全狗是基于Apache服务才能扫描Apache文件使得安装成功,既在安装安全狗之前需要先启动Apache的系统服务。
1)点击安装程序进行安装。若在安装过程中,出现如下两个页面:页面1中提示“服务器上没有Apache服务”,页面2中服务名为空(一般情况下,Apache服务开启,安全狗程序会自动读取服务名),则表示Apache的系统服务未开启,需要先开启Apache的系统服务。
在这里插入图片描述
在这里插入图片描述

Apache系统服务是否启动检测方式:右击“此电脑”——>“管理”——>“服务和应用程序”——>“服务”,查看是否启动Apache服务。
在这里插入图片描述

Apache系统服务启动方式:
1)使用管理员权限进入CMD,切换到Apache的bin目录下执行命令:httpd.exe -k install -n apache X(版本号)
在这里插入图片描述
2)注册账号:安装完成之后,需要注册一个安全狗账号。
3)配置防护规则。进入“网站防护”模块,配置防护规则。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

注意:在本地电脑右下角点击安全狗图标,若上面出现:“插件尚未安装,所有防护功能都会失效”字样,表示安全狗并未启动防护功能。
在这里插入图片描述
原因:Apache系统服务未开启。
安全狗程序安装成功并防护启动验证方式:
1)出现如下图标:
在这里插入图片描述
2)进入靶场进行验证,通过靶场堆站点进行攻击,查看安全狗是否启用拦截。
在这里插入图片描述
注意:若正常情况下需要在靶场进行漏洞攻击训练,则需要关闭安全狗;若练习安全狗绕过,则可开启安全狗服务。

(三)安全狗绕过
注意:当某种安全设备的绕过方式在公网上可以大量搜索到,那大概率这种方式已经无法绕过了(因为WAF规则库一直在更新),这里介绍的绕过方式是给初学者提供一个思路。
WAF绕过实质:让WAF的检测规则,识别不到所输入的敏感字符,既利用WAF规则漏洞进行绕过。
1)数据方面:
(1)大小写绕过 如:union select 改为 UniON SeLeCt
(2)参数加解密绕过 如:database()使用base64加密为 ZGF0YWJhc2UoKQ==。
(3)参数编码解码绕过 针对WAF过滤的字符编码,如使用URL编码,Unicode编码,十六进制编码,Hex编码等。
(4)使用特殊符号绕过
(5)反序列化绕过
(6)使用等价函数、同义符号绕过 如:and 等价于&&
(7)注释符混用绕过
(8)内联注释绕过 如:安全狗对database()函数进行拦截,因此,可以改写为database/* /( ) 或 union selecte =/!union*/ select,注释符里感叹号后面的内容会被mysql执行。
(9)双关键字绕过 如:script 写为 ScscriptRipt
(10)HTTP参污染 对目标发送多个参数,如果目标没有多参数进行多次过滤,那么WAF对多个参数只会识别其中的一个。如:?id=1&id=2&id=3 或 ?id=1/**&id=-1%20union%20select%201,2,3%23*/
(11)换行(\N)绕过
2)数据提交方式方面:
(1)更改数据提交方式 如:get提交方式 改为 post提交方式
3)其他方式
(1)FUZZ工具绕过
(2)利用数据库特性绕过

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

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

相关文章

云原生|kubernetes|kubernetes集群部署神器kubekey的初步使用(centos7下的kubekey使用)

前言: kubernetes集群的安装部署是学习kubernetes所需要面对的第一个难关,确实是非常不好部署的,尤其是二进制方式,虽然有minikube,kubeadm大大的简化了kubernetes的部署难度,那么,针对我们的学习环境或者…

[Linux笔记]常见命令(持续施工)

常见命令 文件与目录命令 pwd 打印当前所在路径。 建议每次登录后,或长时间未操作时,进行操作前都先执行pwd以确认当前位置。 cd 进入指定目录(change direct) .当前路径 ..上级路径 windows下,\为路径分隔符 Linux下,/为路径…

4.6.tensorRT基础(1)-实际模型上onnx文件的各种操作

目录 前言1. onnx1.1 读取节点1.2 修改节点1.3 替换节点1.4 删除节点1.5 修改input和output1.6 预处理的接入 总结 前言 杜老师推出的 tensorRT从零起步高性能部署 课程,之前有看过一遍,但是没有做笔记,很多东西也忘了。这次重新撸一遍&#…

在if/else中进行函数声明

console.log("第一次输出a: ", a) //输出 本地a if (true) {// 这里js隐式的把function a的定义放到这里来了,此刻这里有一个 块aa 1 // 将 块a的值 由函数修改为1console.log("第二次输出a: ",a) // 此时输出的是 块a的值function a() {} // …

【Kubernetes运维篇】RBAC之准入控制器详解

文章目录 一、ResourceQuota准入控制器1、ResourceQuota是什么?2、限制CPU、内存、Pod数量、Deployment数量3、限制存储空间大小 二、LimitRanger准入控制器1、LimitRanger是什么?2、LimitRanger限制案例 一、ResourceQuota准入控制器 中文官方参考文档…

前端Vue仿美团右侧侧边栏弹框筛选框popup alert

随着技术的发展,开发的复杂度也越来越高,传统开发方式将一个系统做成了整块应用,经常出现的情况就是一个小小的改动或者一个小功能的增加可能会引起整体逻辑的修改,造成牵一发而动全身。 通过组件化开发,可以有效实现…

Linux dpkg和dpkg-deb常用参数使用说明

名词解释 “dpkg ”是“ Debian Packager ”的简写。为“Debian” 专门开发的套件管理系统,方便软件的安装、更新及移除。所有源自“Debian”的“Linux ”发行版都会使用 “dpkg”,例如 “ Ubuntu ”、“Knoppix ”等。 dpkg-deb和dpkg的区别 dpkg-de…

golang使用bcrypt包对密码进行加密

bcrypt bcrypt是一个由美国计算机科学家尼尔斯普罗沃斯(Niels Provos)以及大卫马齐耶(David Mazires)根据Blowfish加密算法所设计的密码散列函数,于1999年在USENIX中展示。实现中bcrypt会使用一个加盐的流程以防御彩虹…

深入理解Windows操作系统机制(四)

我是荔园微风,作为一名在IT界整整25年的老兵,今天我们来重新审视一下Windows这个我们熟悉的不能再熟悉的系统。 我们每天都在用Windows操作系统,但是其实我们每天直接在打交道的并不是Windows操作系统的内核,而是Windows操作系统…

H3C-Cloud Lab实验-PPPoE实验

实验拓扑图: 实验需求: 1. 如图,私网内部配置为 192.168.1.0/24 网段,R2 上配置 Loopback0 口模拟互联网地址 2. 配置 R2 为 PPPoE Server,为 R1 提供 PPPoE 拨号服务,并为 R1 自动分配公网 IP 地址 3. …

【unity之IMGUI实践】抽象父类继承实现【三】

👨‍💻个人主页:元宇宙-秩沅 👨‍💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍💻 本文由 秩沅 原创 👨‍💻 收录于专栏:uni…

Bypass!Burp分块传输绕WAF插件

插件简介 本插件主要用于分块传输绕WAF,不了解分块传输绕WAF的可阅读作者这篇文章:【第8周】编写Burp分块传输插件绕WAF 。 关注【Hack分享吧】公众号,回复关键字【230605】获取下载链接 插件使用 延时分块传输

CentOS7.8离线安装Docker24.0.2,离线安装gcc与g++环境

背景 有时候运维时要求在内网环境下操作,即服务器无法连接互联网,那么就无法通过 yum 源在线安装。。这时,一般通过以下3种方式来安装需要的软件: 下载源码包编译安装;下载对应平台编译好的安装包,解压即…

了解JVM

PS:本文以下部分,默认都是使用HotSpot,也就是Oracle Java 默认的虚拟机为前提来进行介绍的。 1.JVM执行流程 程序在执行之前先要把Java代码转换成字节码(.class文件),JVM首先需要把字节码通过一定的方式类加载器(Clas…

python调用oepnai API

目录 apiAI官网介绍([Introduction](https://platform.openai.com/docs/api-reference/introduction))安装官方SDK认证(Authentication)申请API KEY请求组织(Requesting organization) 发送请求关于chat to…

CAJ文献如何转成PDF?分享两个免费的方法!

CAJ格式是中国知网(CNKI)常见的电子文献格式,但有时我们可能更倾向于将其转换为PDF格式以便于查阅、存储和共享。为了帮助大家完成这个任务,下面将分享两种免费的方法来将CAJ文献转换为PDF格式。无论您是研究学者、学生还是对特定…

学校招生报名小程序开发笔记(一)

背景 这是一个以报名为核心的职业学校招生小程序,目的是方便想要系统学习技能,入门某项技能或者领域的初高中毕业生,了解该学校的基本情况及各个专业,并提供报名路径,致力于技能型人才培养 功能规划 主要功能包括专…

使用 Pytest 运行 yaml 文件来驱动 Appium 自动化测试

目录 前言: 获取 yaml 文件 YamlTest 测试类 Appium 初始化 Pytest 测试类 自定义 runtest demo: 自定义错误输出 Yaml 使用方式规则 前言: 使用Pytest来运行yaml文件来驱动Appium自动化测试是一种方便且灵活的方法。通过将测试数据…

【异常解决】postman请求提示Full authentication is required to access this resource

Full authentication is required to access this resource解决办法 报错问题:在使用 postman 测试接口时,该接口需要在 Header 中传入 access_token,实际上也在请求的 Header 中添加上了 access_token 参数,但是服务端还是返回4…

【STM32零基础入门教程01】STM32入门基础知识

本篇内容为STM32零基础入门教程的第一篇,网上STM32的教程很多,有些初学者还是望而却步。其实STM32并不难,只是一个新的事物出现在我们面前一时间不适应,思来想去我打算写点东西一方面自己有点知识的积累,另一方面希望可…