基础知识
SQL注入分类
基于从服务器接收到的响应
- 基于错误SQL注入
- 联合查询的类型
- 堆查询注射
SQL盲注
- 基于布尔SQL盲注
- 基于时间的SQL盲注
- 基于报错的SQL盲注
基于如何处理输入的SQL查询(数据类型)
- 基于字符串
- 数字或整数为基础的
基于程度和顺序的注入(哪里发生了影响)
- 一阶注入
- 二阶注入
一阶注入是指输入的输入语句对WEB直接产生了影响,出现了结果;二阶注入是指输入提交的语句无法直接对WEB应用程序产生影响,通过对其他的辅助间接对WEB产生危害。
系统函数
- version() – MySQL版本
- user() – 数据库用户名
- database() – 数据库名
- @@datadir – 数据库路径
- @@version_compile_os – 操作系统版本
字符连接函数
- concat(str1,str2,…) – 没有分隔符的连接字符串
- concat_ws(separator,str1,str2,…) – 含有分隔符地连接字符串
- group_concat(str1,str2,…) – 连接一个组的所有字符串,并以逗号分隔每一条数据
三个函数能一次性查出所有信息
一般用于尝试的语句
PS: –+可以用#替换,url提交过程中编码后为%23
1 | or 1=1--+ |
一般代码为:
1 | $id = $_GET['id']; |
UNION操作符介绍
UNION操作符用于合并两个或多个SELECT语句的结果集。请注意,UNION内部的SELECT语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每条SELECT语句中的列顺序必须相同。
SQL UNION 语法
SELECT column_name(s) FROM table_name1
UNION
SELECT column_name(s) FROM table_name2
另外,UNION结果集中列名总是等于UNION中的第一个SELECT语句中的列名。