IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> 【WAF01】WAF简介及绕过方式 -> 正文阅读

[网络协议]【WAF01】WAF简介及绕过方式

1 WAF简介

  1. 定义:WAF(Web Application Firewall, Web应用防火墙)是通过执行一系列针对 HTTP/HTTPS 的 安全策略来专门为 Web应用提供保护的一款产品。
  2. WAF分类:
    1. 软件型 WAF
      以软件形式装在所保护的服务器上的WAF,由于安装在服务器上,所以可以接触到服务器上的文件,直接检测服务器上是否存在WebShell、是否有文件被创建等。
    2. 硬件型 WAF
      以硬件形式部署在链路中,支持多种部署方式,当串联到链路中时可以拦截恶意流量,在旁路监昕模式时只记录攻击不进行拦截。
    3. 云 WAF
      一般以反向代理的形式工作,通过配置NS记录或CNAME记录,使对网站的请求报文优先经过WAF主机,经过WAF主机过滤后,将认为无害的请求报文再发送给实际网站服务器进行请求,可以说是带防护功能的CDN。
    4. 网站系统内置的 WAF
      网站系统内置的WAF也可以说是网站系统中内置的过滤,直接镶嵌在代码中,相对来说自由度高,一般有以下这几种情况。网站系统内置的WAF与业务更加契合,在对安全与业务都比较了解的情况下,可以更少地收到误报与漏报。
      1. 输入参数强制类型转换(intval等)。
      2. 输入参数合法性检测。
      3. 关键函数执行 (SQL执行、页面显示、命令执行等)前,对经过代码流程的输入进行检测 。
      4. 对输入的数据进行替换过滤后再继续执行代码流程(转义/替换掉特殊字符等)。

2 WAF存在性判断

2.1 SQLmap

  1. 使用SQLMap中自带的WAF识别模块可以识别出WAF的种类,但是如果所安装的WAF并没有什么特征,SQLMap就只能识别出类型是Generic 。
  2. 命令sqlmap -u "URL" -identify-waf --batch该命令已在最新版的SQLmap中剔除,可以直接使用sqlmap -u "URL" --batch,执行过程如下。
┌──(root💀kali)-[~]
└─# sqlmap -u "www.baidu.com" --batch                          
        ___
       __H__
 ___ ___[,]_____ ___ ___  {1.5.11#stable}
|_ -| . ["]     | .'| . |
|___|_  ["]_|_|_|__,|  _|
      |_|V...       |_|   https://sqlmap.org

[!] legal disclaimer: Usage of sqlmap for attacking targets without prior mutual consent is illegal. It is the end user's responsibility to obey all applicable local, state and federal laws. Developers assume no liability and are not responsible for any misuse or damage caused by this program

[*] starting @ 12:18:06 /2022-03-21/

[12:18:06] [INFO] testing connection to the target URL
got a refresh intent (redirect like response common to login pages) to 'http://www.baidu.com/baidu.html?from=noscript'. Do you want to apply it from now on? [Y/n] Y
you have not declared cookie(s), while server wants to set its own ('BAIDUID=4FB3903318D...FBEBF92:FG=1;BIDUPSID=4FB3903318D...6B7DFB389B;H_PS_PSSID=35838_35106...6350_36100;PSTM=1647879486;BDSVRTM=0;BD_HOME=1'). Do you want to use those [Y/n] Y
[12:18:06] [INFO] checking if the target is protected by some kind of WAF/IPS
[12:18:08] [CRITICAL] heuristics detected that the target is protected by some kind of WAF/IPS
are you sure that you want to continue with further target testing? [Y/n] Y
[12:18:08] [WARNING] please consider usage of tamper scripts (option '--tamper')
[12:18:08] [INFO] testing if the target URL content is stable
[12:18:08] [WARNING] target URL content is not stable (i.e. content differs). sqlmap will base the page comparison on a sequence matcher. If no dynamic nor injectable parameters are detected, or in case of junk results, refer to user's manual paragraph 'Page comparison'                                                                                      
how do you want to proceed? [(C)ontinue/(s)tring/(r)egex/(q)uit] C
[12:18:08] [INFO] searching for dynamic content
[12:18:09] [INFO] dynamic content marked for removal (3 regions)
[12:18:09] [CRITICAL] target URL content appears to be heavily dynamic. sqlmap is going to retry the request(s)
[12:18:13] [WARNING] target URL content appears to be too dynamic. Switching to '--text-only'                                                                                     
[12:18:13] [CRITICAL] no parameter(s) found for testing in the provided data (e.g. GET parameter 'id' in 'www.site.com/index.php?id=1'). You are advised to rerun with '--forms --crawl=2'                                                                                 

[*] ending @ 12:18:13 /2022-03-21/

2.2 手工判断

  1. 这个也比较简单,直接在相应网站的URL后面加上最基础的测试语句,比如在访问的URL后加上参数?aaa=1union select 1,2,3,由于该参数不是链接所需要的参数,不影响后台网页执行,如果执行出错,就表示触发了 WAF 的防护,即网站存在 WAF。
    在这里插入图片描述
  2. 如果没有弹出出错提醒,并不能表明不存在WAF,可能只是允许通过而已。

3 WAF 绕过

  1. 从OSI模型来看,本节内容从不同层分享一些绕过思路。
  2. 物理层:直接连内网进行攻击?
  3. 数据链路层:好像没法吧?
  4. 网络层:有些网站对自己或内容的检测可能比较轻,如果能将请求的源就能绕过WAF。尝试修改 http 的 header:
    (1)X-Forwarded-For
    (2)X-remote-IP
    (3)X-originating-IP
    (4)x-remote-addr
    (5)X-Real-ip
  5. 传输层:好像没有什么思路。
  6. 应用层:像之前大小写混编、双写、编码等绕过思路。

4 总结

  1. 了解一下WAF的分类;
  2. 了解如何建议网站是否配置WAF;
  3. 了解WAF的绕过方式。
  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2022-03-24 00:56:55  更:2022-03-24 00:57:28 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 5:35:02-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码