介绍SQL注入
SQL注入是指Web应用程序对用户输入的合法性没有判断,传入的参数是攻击者可以控制的,并带入数据库查询,攻击者可以构造不同的SQL语句进行对数据库的操作.
SQL注入条件
1,参数_用户可控
2,参数代入数据库查询
MySQL注入相关知识
在MySQL5.0版本以后MySQL数据库中会默认存放一个"information_schema"的数据库,在其中有三个表名

1597894350974_4.png
1,SCHEMATA在这里是存放用户创建的所有数据库的库名,他的字段名为SCHEMA_NAME.

1597894329344_3.png
2,TABLES表存放的是用户创建所有的库名和表名字段分别为TABLE_SCHEMA和TABLE_NAME.

1597894392805_5.png
3,COLUMNS表是存放用户创建的所有数据库的库名,表名和字段名分别为,TABLES_SCHEMA,TABLES_NAME和COLUMNS_NAME.

1597894428303_6.png
MySQL查询语句
| 在不知道任何条件时,语句如下所示. |
| SELECT 要查询的字段名 FROM 库名.表名 |
| 在知道一条已知条件时,语句如下所示 |
| SELECT 要查询的字段名 FROM 库名.表名 WHERE 已知条件的字段名='已知条件的值' |
| 在知道两条已知条件时,语句如下所示. |
| SELECT 要查询的字段名 FROM 库名.表名 WHERE 已知条件的字段名='已知条件的值' AND 已知条件2的字段名='已知条件2的值' |
limit的用法
limit的使用格式为limit m,n m指开始的位置,n指取出多少条数据.
常用的函数
database(): 当前使用的数据库
version(): 当前MySQL的版本
user(): 当前MySQL的用户
注释符
#
--
/**/
内联注释
/*! code */ 用于执行我们的SQL语句
联合注入查询
union + 你要查询的语句
order by 判断字段数量
order by 是将列进行排序
后面数字是列数,如果没有就报错