[强网杯 2019]随便注
我太菜了啊,哭了。
1.打开网站,是个提交框:
2.查询一下:
3.既然说是注入了,那么拼接 '") ,发现报错了:
4.判断出来是单引号闭合:
5.看列名只有两个,头铁直接上:
6.发现过滤了这些字符,且区分了大小写。其实这里可以用extractvalue报错查看少量信息,因为不需要用select这些:
7.怎么进一步查询呢??我想到了堆叠查询,因为可以用show查看信息,不用select:
8.看一下表名:
9.这个数字这么长,肯定就是它了= =查看它的列名:注意表名要用“`”包起来。
10.好了,知道flag在这儿了,但是我没辙了。我想到concat可以拼接,但是我利用不了= =看了WP说是预编译,好吧。而且还看到了给表改名的,啊,我怎么这么蠢这么菜啊,枯了。
payload:
?inject=-1';SET @sql = CONCAT('sel','ect',' * from `1919810931114514`;');PREPARE dawn from @sql;EXECUTE dawn;#
这里就是先设置待编译的语句,用concat把select拼接出来。然后进行预编译,然后执行。说是检测了小写的set和prepare= =我直接敲的大写,没遇着。