Bootstrap

【SQL注入-03】union联合查询注入案例


本博客内容仅供学习探讨,请勿滥用乱用

1 union联合查询注入概述

1.1 简介

union查询注入是最基础的注入。在SQL中, UNION 操作符用于合并两个或多个 SELECT 语句的结果。union 查询注入利用 UNION 关键字可以追加一条或者多条额外的 SELECT 查询,并将结果追加到原始查询中。联合查询会“纵向”拼接两个或多个 SELECT 语句的结果。

1.2 适用条件

(1)网页存在注入点,有回显。
(2)需要满足union语句要求,即:

  • union前后两个select的结果集应具有相同列数
  • union前后两个select的结果集对应列应是相同数据类型

注意,当数据类型为字符时,可以使用编码将字符转化为数字类型。

1.3 注入步骤

(1)首先判断是否存在注入点注入的类型
(2)使用ORDER BY 查询列数、观察回显的位置。
(3)获取数据库名。
(4)获取数据库中的所有表名。
(5)获取数据库的表中的所有字段名
(6)获取字段中的数据。

1.4 注入技巧

在最后一个select语句后可以使用 order by 或 limit 等SQL语句对查询进行限制和调整。

2 union联合查询注入案例

2.1 操作环境

实验靶场——虚拟机(IP为172.16.1.1):本节实验靶场是在win2008系统上基于phpstudy搭建的一个简单网站,win2008及phpstudy的安装过程可以参考《【语言环境】WAMP环境部署及优化—以win2008R2SP1为操作系统》,网站的搭建过程可以参考《【(SQL+HTML+PHP)综合】一个简单论坛网站的综合开发案例

注入工具——真实机:本实验利用火狐浏览器来实现union注入,为方便注入过程的编码,建议安装一个扩展插件harkbar,安装过程参考《HackBar免费版安装方法》由于该教程中的2.1.3harkbar我安装后无法正常使用,就安装了HackBar Quantum来代替。安装后出现下图左侧的东西。
在这里插入图片描述

2.2 操作具体步骤

在执行sql语句的时候,可以考虑火狐浏览器的插件HackBar Quantum。

2.2.1 判断是否存在注入点及注入的类型

在该阶段主要是尝试不同的输入参数,根据网页反馈信息来判断是否存在SQL注入点以及注入类型,如是否是字符型还是数值型,是否有布尔状态,是否存在延迟注入等。首先用浏览器访问我们的留言论坛,并点击第一条留言进入测试界面。然后判断是否存在注入点及注入的类型。
在这里插入图片描述

;