一、内联注释
4、单行注释,#后面直接加内容
多行注释,/**/中间可以跨
二、注入语句
1.union联合查询:union操作符用于拼接两个或者多个select查询语句。
union中前后2个查询必须拥有相同的列数。
2、order by 语句: 默认按照升序进行排列
3、常用的函数
函数/语句 | 功能 |
user() | 当前用户名 |
database() | 当前所用数据库 |
current_user() | 当前用户名(可以用来查看权限) |
version() | 数据库的版本 |
@@datadir | 数据库的路径 |
load_file() | 读文件操作 |
into outfile()/into dumpfile | 写文件操作 |
三、sql注入读写文件的根本条件:
1、数据库允许导入导出(secure_file_priv):show variables like "secure_file_priv"; #secure_file_prive直接在my.ini文件里设置即可
2、当前用户是否对文件具有读写权限(File_priv):查看当前用户 select current_user();
查看当前用户是否具有读写权限: select File_priv from mysql.user where user='root' and host='localhost';
四、字符串连接函数
1、concat(str1,str2..)直接连接
2、group_concat(str1,str2)使用逗号作为分隔符
3、concat_ws(sep,str1,str2)函数使用第一个参数作为分隔符
五、sql注入的本质
把用户输入的数据当做代码执行
1、用户能够控制输入;
2、原本程序要执行的代码,拼接了用户输入的数据。
sql注入经常出现的地方:1、用户一切可以输入(可控)的地方
2、数据库一切可能导入、导出的东西。
六、sql注入的分类
根据数据的传输方式:GET型 POST型 COOKie型
根据数据的类型:数字型、字符型
根据注入的模式:基于联合查询的注入模式
基于报错的注入模式
基于布尔的盲注
基于时间的盲注
堆查询的注入模式
七、sql注入的一般步骤
1、求闭合字符
2、选择注入模式
3、爆数据库
4、爆表名
5、爆列名
6、爆字段