sql联合查询注入

本文介绍了SQL联合查询注入的基本概念,包括它的定义、适用范围和注入过程。通过判断注入点、查询类型、列数,以及如何获取数据库名、表名、字段名和数据的详细步骤,阐述了联合查询注入的一系列操作。特别提到了通过`order by`来确定查询列数,使用`group_concat()`函数获取数据库和表名的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

简单的了解

  1. 联合查询注入
    在做题目之前,先了解了解SQL联合查询注入,什么是联合查询注入首先联合查询注入是数据库提供联合查询,使用union使得两条SQL查询语句的结果进行连接。例如select *form tp_user where id= 1 union select 1,2,database(),4,5;(两者的字段数必须保持一致)
  2. 联合查询注入的适用范围
    联合查询注入只适用于页面有返回结果的SQL语句查询(就是要有回显)

联合查询注入的过程

1、判断注入点
2、判断是整型还是字符型
3、判断查询列数
4、获取数据库名
5、获取数据库中的表名
6、获取字段名
7、获取字段中的数据

  1. 注入点
    sql联合查询的注入点都比较明显, 必须是页面上的显示位(页面中展示数据库中数据的位置),否则无法注入,如id,name等等。

  2. 判断整形还是字符型
    (1)尝试使用加单引号或双引号
    显示数据库错误信息或者页面回显不同可以判断是整形注入和字符型注入.整型注入没有变化,而字符型注入则回显不同
    (2)*输入’ and 1=1和 ’ and 1=2 *
    发现页面变化,判断为字符注入

  3. 查询列数
    使用order by函数 对MySQL中查询结果按照指定字段名进行排序,order by 1.2.3…第一个查询字段为1,第二个为2,依次类推。

  4. 获取数据库名
    使用 group_concat()将所有的表名联系在一起
    select group_concat(SCHEMA_NAME) from information_schema.SCHEMA

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值