字符型注入
源码
26行通过GET方式获取参数,参数未进行任何过滤。28行SQL查询语句对传入的参数使用单引号进行闭合。
首先判断注入类型
发现输入一个单引号报语法错误,说明可能存在注入点。使用 ' or 1=1 #(返回正常页面)和 ' or 1=2 #(返回错误页面)判断是单引号闭合,字符型注入。
判断字段数
发现3个字段会报错,2个字段回显正常,说明字段数为2
判断显示位
获取库名
@@datadir:显示路径
database():库名
获取表名
获取列名
获取数据
数字型注入
源码
代码第26行使用POST方式获取参数,27行SQL语句传入参数,可以看到参数未进行任何过滤。$id未使用闭合条件,说明传入的不是字符串而是数字。
判断注入类型
正常查询
抓包修改参数,因为是POST方式,无法直接在url中修改参数。
判断字段数
3个字段报错,2个字段回显正常,说明字段数为2
判断显示位
获取库名
获取表名
获取列名
获取数据
搜索型注入
源码
GET方式获取参数,未进行过滤,30行 '%$name%' 使用通配符%进行模糊查询
这里可以使用单引号进行闭合,和代码中的第一个单引号进行闭合,只保留了$name前面的通配符%,后面的注释掉就好了
判断注入类型
' and 1=1 # 字符型注入
判断字段数
4个字段会报错
3个字段显示正常,说明字段数为3
判断显示位
获取库名
获取表名
获取列名
获取数据