前言
今天给大家带来的是MYSQL8版本的特性注入,说起SQL注入大家一定不陌生,可是你有没有想过,当SQL注入中最关键的函数SELECT被过滤后,我们要如何去执行SQL语句呢,这就是本文要讲的内容,即利用MYSQL8版本的特性来进行关键字的绕过注入。
基础知识
因为MYSQL8配置并不是本文的重点,大家可以参考下面的链接来自己进行配置:
www.cnblogs.com/2020javamia…
table
官方文档:
dev.mysql.com/doc/refman/…
table函数为MYSQL8版本中新增的函数,其作用与select函数类似,作用是列出表中的全部信息,规范语法如下:
TABLE table_name [ORDER BY column_name] [LIMIT number [OFFSET number]] 复制代码
假如我们使用table函数查询users表下面的内容,可用以下语句:
table users; 复制代码
我们可以看到table函数可以等价于下面的常规查询语句:
select * from users; 复制代码
上面这两条语句查询出的结果是一致的,同时table是支持UNION联合查询,ORDER BY等限制条件,但它与SELECT的区别可以总结为下面两个要点:
1.我们使用table语句进行查询时,显示的始终是表的所有列。
2.我们不可以用where字句来限定某个特定的行。
values
官方文档:
dev.mysql.com/doc/refman/…
MYSQL8中另一个新增的函数,用法可以概括为函数后跟一个或多个行构造函数的列表,可以构造一个表,规范语法如下:
VALUES row_constructor_list [ORDER BY column_designator] [LIMIT number] row_constructor_list: ROW(value_list)[, ROW(value_list)][, ...] value_list: value[, value