知识点:
- 时间盲注:利用休眠时间进行判断是否注入成功
- 利用bp时注意把timeout时间修改一下
首先判断注入类型
构造id=1/0
返回正常信息,应该是字符型注入
构造id=1'
返回正常信息,欸,这就怪了
构造id=1
正常显示内容,总感觉哪里不太对
构造id=0
发现还是正常显示内容,这里就有些不太对了,应该是不管正确与否都返回相同的信息
好了,只能用时间盲注了
构造id=1' and if(1,sleep(2),1) --+
发现页面出现了转圈圈的标志;说明if语句中的内容被执行了;注入成功
接下来利用时间盲注进行数据库敏感信息的爆破;
通过bp进行抓包,当前构造的payload:id=1%27%20and%20if((mid((select%20group_concat(table_name)%20from%20information_schema.tables%20where%20table_schema=%27security%27),1,1)=%27e%27),sleep(5),1)--+
还是和第七八关一样,对截取函数的起始位和匹配字符位进行标记;然后配置相应的设置(这部分设置就不截图演示了,七八关都有);需要重点说一下的是设置一下bp的项目超时时间;进入project options设置面板,找到timeout选项下的第一个选项normal;默认时120;单位是秒;设置这个时间位2s;这样的话如果字符匹配就睡眠5s;会自动超时处理
然后进行爆破,对爆破的结果进行过滤;将所有状态码都取消勾选;点击应用;这样就只剩下timeout的数据了,通过payload1进行排序就得到了规整易读的表名信息
10