MySQL注入绕过WAF的基础方式

访客3年前关于黑客接单384

SQL注入绕过WAF

参考文献

SQL注入基础整理及Tricks总结

国光-高级注入姿势

基础绕过

1. 大小写绕过

用于过滤时没有匹配大小写的情况:

2. 双写绕过

用于将禁止的字符直接删除的情况:

比如,使用或者是将、、、等关键词替换为空字符串。

这时,可以使用双写嵌套绕过,写成,写成、写成、写成。在删除一个关键字后,剩下的部分又可以重新组合成完整的关键字。

3. 内联注释

内联注释的作用是增加SQL语句的可移植性。比如,将MySQL特有的语法使用内联注释的形式来编写,在这种情况下,MySQL可以正常的解析并执行内联注释中的代码,但是其它的SQL服务器则忽略内联注释中的内容。

例如MySQL服务器可以在以下语句中识别关键字,而其他服务器则不能:

如果在!后面添加版本号,则仅当MySQL版本大于或者等于指定的版本号时,才会执行注释中的语法。例如,以下注释中的关键字仅由MySQL 5.1.10或者更高版本的服务器执行:

类型的注释,内部语句会被执行

可以用来绕过一些WAF,或者是绕过空格

但是,不能将关键词用注释分开,例如下面的语句是不可执行的(或者说只能在某些较老版本执行)

4. 使用16进制绕过特定字符

如果在查询字段名的时候表名被过滤,或者是数据库中某些特定字符被过滤,则可以使用16进制绕过。

为users的16进制编码

5. 宽字节、Latin1默认编码

宽字节注入

以下是常用的URL编码

ASCII值URL编码
\%5C
'%27
"%22
#%23
&%26

宽字节注入的利用条件

查询参数是被单引号包围的,传入的单引号又被转义符转义,如在后台数据库中对接收的参数使用、或者是其他转义函数

数据库的编码为GBK

概括的说,就是单引号被转义,但编码为GBK

利用方式

GET形式

在上述条件下,单引号被转义为,即。如果我们在单引号前加上,就会构成,而在GBK编码方式下,是汉字"連",所以单引号成功逃逸。

如果是在请求体中,需要使用POST参数。使用Burp Suite抓取请求,然后在单引号()之前添加。

宽字节注入原理

MySQL在使用GBK编码时,会认为两个字符为一个汉字,例如就是一个汉字。因为转义 *** 主要就是在敏感字符前面添加反斜杠,所以这里想办法去掉反斜杠即可。

吃掉

其实这里之一个字符并不局限为,只要是在到范围内都可以。具体原因是,,我们在前面添加,形成,MySQL在GBK编码方式的时候,会将两个字节当做一个汉字,这个时候就把当做是一个汉字,则作为一个单独的符号在外面,同时也就达到了我们的目的。

将中的过滤掉

例如可以构造的情况,后面的会被前面的给注释掉。这也是bypass的一种 *** 。

函数返回在预定义字符之前添加反斜杠的字符串。

预定义字符转义后

该函数可用于为存储在数据库中的字符串以及数据库查询语句准备字符串。

在使用时,我们需要将设置为的方式,才能够防御此漏洞。

Latin1编码

Mysql表的编码默认为latin1,如果设置字符集为utf8,则存在一些latin1中有而utf8中没有的字符,而Mysql是如何处理这些字符的呢?直接忽略

于是我们可以输入?username=admin%c2,存储至表中就变为了admin

上面的%c2可以换为%c2-%ef之间的任意字符

6. 常用字符的替代

and -> &&
or -> ||
空格 -> -> %a0 -> %0a -> +
# -> -- + -> ;%00(php<=5.3.4) -> or '1'='1
=-> like -> regexp -> <> -> in
注意:regexp为正则匹配,利用正则会有些新的注入手段

注意,因为是URL中不同参数之间的分隔符,所以,在前端中需要将进行URL编码,编码为。

过滤空格

使用或者函数,将空白字符替换为空字符串。

过滤了空格,使用编码绕过。可以使用如下符号来替代:

符号说明
%09TAB键(水平)
%0a新建一行
%0c新的一页
%0dreturn功能
%0bTAB键(垂直)
%a0空格

过滤注释

使用或者函数,将多行注释,单行注释、替换为空字符串。

绕过方式:使用闭合绕过

7. HTTP参数污染

HTTP参数污染

由于没有相关的HTTP RFC定义HTTP参数操作的语义,因此每个Web应用程序可能会以不用的方式来处理多个相同名称的参数。

在单个HTTP请求中,攻击者使用多个具有相同名称的参数,将注入语句中的关键字拆分在每个参数的值中。

比如,

下表是不同的Web服务器如何管理多次出现的同一参数。

HTTP后端总体解析结果例子
ASP.NET/IIS特定参数所有内容进行拼接par1=val1,val2
ASP/IIS特定参数所有内容进行拼接par1=val1,val2
PHP/Apache最后一次出现的参数内容par1=val2
PHP/Zeus最后一次出现的参数内容par1=val2
*** P,Servlet/Apache Tomcat之一次出现的参数内容par1=val1

当Web应用程序将多个参数的值拼接起来,就可以得到完整的注入语句。同时,如果WAF只单独检查每个参数的值,或者是将整个请求数据作为单个字符串处理,这样的安全机制将无法检测到HPP攻击。比如,将重复出现的参数的值拼接起来。

下面是两个SQL注入的场景:"常规攻击"和"使用HPP攻击"。

“常规攻击”演示了prodID参数中的标准联合注入语句。这种攻击方式会被Web应用程序防火墙(WAF)轻松识别。第二次攻击在prodID参数上使用HPP。在这种情况下,prodID参数多次出现,而注入语句被拆分在每个prodID的值中。为了使WAF能够识别完整的注入语句,还需要将所有的输入拼接起来检查。

常规攻击:

使用HPP攻击:

8. 逗号被过滤

用join代替

limit

substr

from为从第几个字符开始,for为截取的长度

from 5表示从第5个字符开始截取

如果for也被过滤了

if

9. limit被过滤

加限制条件

(user_id是表中的一个列)

11. and、or、&&、||被过滤

可用运算符以及来代替

12. 各个字符以及函数的代替

常用函数的替代

字符串截取/拼接函数:

摘自https://xz.aliyun.com/t/7169

函数说明
SUBSTR(str,N_start,N_length)对指定字符串进行截取,为SUBSTRING的简单版。
SUBSTRING()多种格式。
RIGHT(str,len)对指定字符串从最右边截取指定长度。
LEFT(str,len)对指定字符串从最左边截取指定长度。
RPAD(str,len,padstr)在右方补齐位的字符串,返回新字符串。如果长度大于,则返回值的长度将缩减到所指定的长度。
LPAD(str,len,padstr)与RPAD相似,在左边补齐。
MID(str,pos,len)同于。
INSERT(str,pos,len,newstr)在原始字符串中,将自左数第位开始,长度为个字符的字符串替换为新字符串,然后返回经过替换后的字符串。可当做截取函数。
CONCAT(str1,str2…)函数用于将多个字符串合并为一个字符串
GROUP_CONCAT(…)返回一个字符串结果,该结果由分组中的值连接组合而成。
MAKE_SET(bits,str1,str2,…)根据参数1,返回所输入其他的参数值。可用作布尔盲注,如:。

数字的代替:

使用、、、、、、、等数学运算函数的组合进行代替

函数/语句

说明



LENGTH(str)返回字符串的长度。
PI()返回π的具体数值。
REGEXP “statement”正则匹配数据,返回值为布尔值。
LIKE “statement”匹配数据,%代表任意内容。返回值为布尔值。
RLIKE “statement”与regexp相同。
LOCATE(substr,str,[pos])返回子字符串之一次出现的位置。
POSITION(substr IN str)等同于。
LOWER(str)将字符串的大写字母全部转成小写。同:。
UPPER(str)将字符串的小写字母全部转成大写。同:。
ELT(N,str1,str2,str3,…)与类似,根据返回参数值。
NULLIF(expr1,expr2)若expr1与expr2相同,则返回expr1,否则返回NULL。
CHARSET(str)返回字符串使用的字符集。
DECODE(crypt_str,pass_str)使用 pass_str 作为密码,解密加密字符串 crypt_str。加密函数:。

相关文章

亨氏婴儿米粉怎么冲好吃 亨氏婴儿米粉冲泡方法

亨氏宝宝米粉口味如何,亨氏宝宝米粉怎么样吃,亨氏宝宝米粉如何,亨氏宝宝米粉小宝宝爱吃吗,我就而言讲吧。 商品总体 接到商品很意外惊喜,包裝精美,外边也有泡沫膜裹住,三种口感,觉得非常好 闪光点与...

雅固智能锁好不好 雅固智能锁特点

雅固智能锁好不好 雅固智能锁特点

  深圳市雅固锁业有限公司是一家集产物研发设计、出产、销售于一体的智能门锁高科技企业,专业为各类星级旅馆、商务旅馆、当局构造、学校、医院、现代劳公室提供智能门锁产物及办理方案。假如您也需要安装一把智能...

过年给领导送礼什么时候合适(过年过节给领导送礼是否犯罪)

节日送礼(新年给领导送礼)我的朋友小文在周末找到我,说:“我想我完了,不能在公司混了。” 我不知道这个傻女孩犯了多大的错,直到我问她为什么。 年底,小文公司将有一次晋升和选拔。她认为她在公司已经两...

游戏网站推广是做什么的,网络公司游戏推广平台

游戏网站推广是做什么的,网络公司游戏推广平台

最近两年,一些国产手游在日本市场取得比较不错的成绩。比如悠星网络发行的《碧蓝航线》在去年12月登顶日本App Store畅销榜;网易的《荒野行动》也在日本市场屡次拿到过这一位置,并长期维持在前五名之内...

找黑客解封滴滴,免费黑客网盗号软件

一、解封滴滴怎么找黑客 1、找黑客一个人对一个能在很长一段时间内创造有用的软件有很好的理解。解封滴滴免费盗号软件不要急于回答这些问题,首先回答文庙学生的其他两个问题。手机软件帮忙查电话号码这与电脑无关...

地狱黑客全集(地狱 最新章节 无弹窗)

地狱黑客全集(地狱 最新章节 无弹窗)

本文导读目录: 1、《地狱黑客》txt全集下载 2、地狱黑客电子书txt全集下载 3、《地狱黑客(禁区之门)》txt全集下载 4、书荒··求好看的YY都市小说(家世nb,人物nb),大学校...