第十六关
这一关与15关的注入方式一样,都是使用盲注可以实现,只是闭合方式不同,这里需要使用")来闭合,就里就不再演示
第一步进行时间盲注
") and sleep(3)#
第二步开始判断数据库的长度
第三步爆出表名
第四步爆出字段
第五步爆出数据
第十七关
这一关是比较特殊的一关,从17关开始,后端会过滤我们输入的内容,我们看一下后端的代码
我们可以看看前端页面输入的时用户名和新密码,输入了admin,然后输入密码,就会显示密码已经成功的更新了
这时我们闭合一下
可以看到报错了,说明是存在注入的,那么我们就可以尝试使用报错注入
' and (updatexml(1,concat(0x7e, database(),0x7e),1))#
可以看到是可以注入出数据库名称了,后面的表名,列名,数据都可以使用这种方式注入
第十八关
第一步
(我们需要使用 bp 来抓住带有请求头的数据包)
我们在页面中的账号密码框中输入 admin ,然后打开 bp 开始抓包 ,我们抓点击登录按钮后的页面
然后我们 CTRL+R 将抓到的内容发入重放器,然后我们打开重放器,点击发送,在右面打开页面渲染
然后在头部的后面加引号来测试能不能影响页面
发现页面有变化,说明引号被加入到数据库中的 sql 语句中执行了
这时我们输入注释符发现还是报错,这时我们去查看靶场源码,找到我们插入代码的地方
发现源码中的 sql 语句,我们如果注释掉之后语句就出现问题了
我们再次查看源码将我们要写的代码替换掉 uagent 发现我们在后面加上 and ' 就可以使 sql 语句执行成功,这时我们再到 bp 中继续爆破
然后我们使用报错注入开始爆破他的数据库名
我们接着使用报错注入爆破他的表名
我们继续爆破他的字段名
我们接着爆破他的数据
这时我们得到了数据库中的数据,至此爆破完成。
第十九关
我们和第十八关一样在输入框中输入 admin 点击登录,直接抓包
这时我们使用看到页面中显示 referer 我们在请求头中也看到了 referer
我们就在它后面加冒号查看页面会不会变化
我们发现页面报错了这时我们还是使用报错注入来获取数据库的名字
我们还是使用 and' 来闭合
可以得到数据库的名字
这时我们就能使用报错注入来爆破数据了(和第十八关一样)
这时我们得到了数据库中的数据,至此爆破完成。
第二十关
我们和第十八关一样在输入框中输入 admin 点击登录
我们继续使用 bp 抓这个页面,发送到重放器
我们再请求头中的 cookie 后加'发现页面有变化发生了报错
这时我们使用报错注入
这时我们得到数据库的名字
然后我们继续用报错注入就能得到数据库的数据
得到了数据库的数据,至此爆破成功!