一、SQL注入原理及条件
原理:
当web应用向后台数据库传递SQL语句进行数据库操作时,如果对用户输入的参数没有经过严格的过滤处理,那么攻击者就可以构造特殊的SQL语句,直接输入数据库引擎执行,获取或修改数据库中的数据。
条件:
-
参数用户可控:前端传给后端的参数用户可控。
-
参数带入数据库查询:传入的参数拼接到SQL语句中,且带入数据库中执行。
二、注入关键
构造闭合
三、注入步骤
1.判断是否存在注入
2.判断字段数
3.判断显错位
4.判断库名
5.判断表名
6.判断列名
7.寻找具体数据
四、关键SQL用词
order by——排序,用来判断字段数
group by——将产生的同一个分组中的值连接起来,返回一个字符集结果
union select——联合查询,用来查询自己想要的数据
database()——可以用来查看数据库
version( )——可以用来查看数据库版本
limit 0,1——限制输出,0表示从第几个开始,1表示数量
information_schema——mysql5.0版本以上,记录了mysql数据库下所有数据库名、表名、列名信息
information_schema.tables——记录表名信息的表
information_schema.columns——记录列名信息的表
table_name——表名
column_name——列名
table_schema ——数据库名