目录
字符型
数字型
字符型闭合方式
less-1
less-4
sql注入常见类型包括字符型和数字型(json这里不介绍)
以sql-labs靶场为例;
字符型
less-1:输入参数id:
这里我将sql查找语句一起输出了;
我们发现有回显,说明在myql中进行了交互,可以进行注入;
#判断是否是数字型注入
and 1=1 #回显
and 1=2 #不回显
两个都有回显,说明不可能是数字型;因为数字型使用逻辑条件and 1=2条件为假,不会回显;
但字符型使用and 1=1或者and 1=2只是把它当成了字符,而不是进行逻辑判断;
这里只输入1 and都可以正常回显,说明在字符型查找id,只会查找前面的数字;
这样我们就可以判断出这就是字符型;
数字型
less-2:
输入and 1=1有回显,and 1=2就没有回显,可以直接判定是数字型
(这里黄色输出是我将php源码中$sql语句也输出了,这样看起来更直观)
字符型闭合方式
判断出less-1是字符型后,还需要判断是哪种闭合,常见闭合包括
单引号,双引号,括号,以及这几种组合
less-1
尝试双引号闭合
发现能回显,说明不是这种闭合;
用单引号闭合发现错误,观察报错信息,1'后面还有个',说明就是'闭合
用--+注释掉后面内容
成功回显 ,说明就是单引号闭合
less-4
再来看less-4,先看源码:
这里用到了("$id")两种字符组合
第一步:我们继续假设用单引号闭合
有回显,说明不可能是这种闭合;
第二步:尝试双引号闭合
产生报错,可能是这种闭合,原因:我们注入的双引号与前面的闭合了,而后面的符号")无法闭合,所以产生报错
通过报错信息得知是")是这两种闭合
第三步:尝试")闭合
第四步:用and 1=2确认
无回显,无报错,说明就是")闭合
成功确认闭合方式