首先说一下SQL注入
SQL:结构化查询语句(数据库代码)
注入:用户输入的数据被当做代码执行
Mysql注入:就是用户输入的数据被当做Mysql 代码执行
安全和用户体验是站在对立面的
1. 首先判断是否存在Mysql 注入:
### 方法一: and 1=1 有数据
and 1=2 无数据
说明存在注入(**已经过时了**)
### 方法二:只有数据库才能做**加减乘除**的运算
比如在 id=1时可以输入 id =2-1
如果有数据说明存在注入
### 方法三:使用函数 or sleep(5)
如果网站刷新 5秒后才会有数据,说明存在注入
2. Mysql 数据库的查询语句
a). 查库名: select database()
b). 查表名: select table_name from information_schema.tables where table_schema = database()
c). 查字段名:select column_name from information_schema.columns where table_name = “表名” and table_schema = database()
d). 查字段内容:select 字段名 from 表名
注:b,c两条命令仅用于MySQL数据库版本 > 5.0
3. 其它函数说明
a). union 联合查询
把两个语句联合起来一起查询(要求:前后查询的字段数量必须一致,不一致需要补齐)
select 1 union select 2
输出1 2
b). limit 切片输出
limit 0,1 从第一行开始输出,输出一行
c). order by 排序
将查询到的数据进行排序(也可以检测字段数量)
order by 1 把第一列数据进行排序
没有数据就会返回空页面,或者保错
d). GROUP_CONCAT() 将多行数据整合在一行输出