一.SQL注入漏洞的基本概念
1)前提
1, 前端传入后端的参数是用户可控的;
2, 传入的参数拼接到SQL语句,且带入数据库查询。
2)成因
由于WEB应用程序对用户输入的数据的合法性没有判断,用户通过可控参数中注入SQL语句,破坏原有SQL结构,达到编写程序时意料之外结果的攻击行为,
成因归结为两个:
1、程序编写者在处理程序和数据库交互时,使用字符串拼接的方式构造SQL语句。
2、未对用户可控参数进行足够的过滤便将参数内容拼接进入到SQL语句中。
二.SQL注入的分类
按参数类型分类
1)数字型注入
输入参数为整型时,如Id、年龄和页码等;
数字型例句如下
select * from table where id = 8
1)字符型注入
输入参数为字符串型时,如姓名、职业、住址等;
字符型例句如下
select * from table where name =’admin’
两者最大的区别:字符型注入一般要使用单引号进行闭合,而数字型注入则不需要。
按注入位置分类
GET注入:注入字符在URL参数中;
POST注入:注入字段在POSt提交的数据中;
Cookie注入:注入字段