美文网首页web安全
union查询注入

union查询注入

作者: shadowflow | 来源:发表于2018-07-09 21:02 被阅读1次
1.UNION介绍

union 操作符用于合并两个或多个SELECT语句的结果集

注:

  1. union 内部的 select 语句必须拥有相同数量的列,列也必须拥有相似的数据类型,
    每条select语句中的列的顺序必须相同。
  2. 默认情况,union 操作符选取不同的值。如果允许重复的值,请使用 UNION ALL
UNION注入应用场景

前提:

  1. 注入点页面有回显
  2. 只要UNION连接的几个查询的字段数一样,且列的数据类型转换没有问题,就可以查询出结果

注意的点:

  1. 只有最后一个SELECT子句允许有ORDER BY;
  2. 只有最后一个SELECT子句允许有LIMIT;
    例:select * from users order by id union select 1,2,3; 会报错
UNION注入过程
  1. order by 确定列数
  2. 观察页面返回,选取可以显示数据的位置,进行下一步的注入
  3. 读库信息
  4. 读表信息
  5. 读字段
  6. 读数据
TIPS
  • 为什么要使用order by 来确定字段数?
    因为union操作符要求所有select 语句拥有相同的列,于是在注入中,select * from users where id = '1' union select 1,2,3--+  后面注入的select要和前面的 select * 的字段数一样。于是就要先用order by 来确定前面的select用多少字段,然后构造相同的字段数在注入的select中
  • 注入中为什么 id=-1' union select 1,2,3 --+  中id=-1而不是1
    答:如果id=1 那么页面返回结果就是id=1的值,id=1的值占据了后面注入的select的值的位置,导致无法显示,如果在数据库命令行中,两个结果都会返回。所以必须让前面的select语句的查询为空,这样才能显示后面注入的select语句
  • select语句中可以嵌套select
select * from users where id=-1 union select 1,(select version()),3;

相关文章

  • union联合查询注入&&报错注入

    union联合查询注入 报错注入

  • Mysql注入-union联合查询注入

    mysql中数据库information_schema使得注入方便了许多 union联合查询union注入成功前提...

  • union查询注入

    1.UNION介绍 union 操作符用于合并两个或多个SELECT语句的结果集 注: union 内部的 sel...

  • SQLserver注入大全

    联合查询注入 order by 4--union select name,null,null,null from ...

  • 网络安全-Day23-SQL注入(实战篇)

    一、union注入 介绍:union操作符用于合并两个或多个SQL语句集合起来,得到联合的查询结果。 1、联合查询...

  • Oracle注入大全

    联合查询注入 order by 3--and 1=2 union select null,null,null fr...

  • Less1

    基于报错的sql注入 字符型注入 数字型 括号型推测sql语句 **union ** 联合查询的方法,主要利用my...

  • Mysql手工注入

    整理一下手工注入笔记,以sqli-labs环境为例。 1.Mysql手工union联合查询注入 输入单引号,页面报...

  • web

    sql注入 刚开始尝试用uion注入发现union被过滤了,用and查询的时候单引号也被转义了,于是想找别的方法注...

  • 网络安全-Day25-手工获取mysql网站webshel

    1、使用单引号判断是否有注入点(报错说明存在注入点) 2、查询正在使用中的用户user、数据库(%27union%...

网友评论

    本文标题:union查询注入

    本文链接:https://www.haomeiwen.com/subject/zwbtpftx.html