判断注入点的关键
判断该URL是否存在注入,判断属于哪种
如果存在SQL注入,属于哪种SQL注入就很重要了,只有我们知道它是什么类型的,我们才能构造出原始的SQL语句
例如图所示的 单引号闭合法 出现如下语句基本说明存在SQL注入点
原因:单引号个数不匹配
you have an error in your SQL syntax;
通常SQL注入类型分为两种类型,一种字符串类型,一种数字类型
数字型
select * from user where id = 1 and 1 =1 时页面回显正常 接下来我们进行修改
select * from user where id = 1 and 1 =1 and 1=2 此时 因为 1=2 为假 真and假=假 SQL语句正确,逻辑错误,页面此时显示错误
select * from user where id = 1 or 1 = 2 如果此时页面返回正常则说明是数字型
当输入的参数为字符串时,称为字符型。字符型和数字型最大的一个区别在于,进行SQL注入时数字型不需要单引号来闭合,而字符串一般需要通过单引号来闭合的。
数字型和字符串型都能通过单引号 闭合法判断是否存在注入点但是在注入的过程中 数值型不需要通过单引号闭合
- 加单引号:
select * from table where name=’admin’’ 由于加单引号后变成三个单引号,则无法执行,程序会报错;
- 加 ’and 1=1 此时sql 语句为:
(select * from table where name=’admin’ and 1=1#’ (后端服务器带的单引号被#注释掉了)此时返回正常
- 加and 1=2— 此时sql语句为:
select * from table where name=’admin’ and 1=2 #’则会报错
如果满足以上三点,可以判断该url为字符型注入。
综上,可以得出下表: