Buuctf-Web-[强网杯 2019]随便注

前言

刷题网址:https://buuoj.cn/challenges#[强网杯 2019]随便注


首先打开就是SQL注入,我们尝试一下,如下图,发现返回的是原始数据

image

然后我们输入1' or 1=1#发现返回了所有数据,如下图

image

这里我们直接来使用联合注入尝试,发现order by 2正常回显,但是order by 3就报错

image

这里我们查询,发现过滤了很多关键字。

image

这里可以选择尝试堆叠注入,如下图,发现是可以进行堆叠注入的,并且把所有的数据库都爆出来了。

payload: 1';show databases;#

image

然后这里我们查表,发现有两个表,一个是纯数字表一个是words表,如下图

payload: 1';show tables;#

image

我们查看数字表,如下图,发现flag在里面,然后反单引号(`)是数据库、表、索引、列和别名用的引用符,但是这里经过测试,如果是纯数字的表就需要加反单引号,如果不是就不需要加或者加上也无所谓。

payload: 1';show columns from `1919810931114514`;#

image

然后我们在查看words表,如下图,看起来输入框里面默认查询的就是words表了,因为上面查询数字表的时候只有一列,查询words表的时候有两列,那么如果是这样的话猜测一下查询语句应该是: select id,data from words where id =

payload: 1';show columns from words;#

image

如果是这样,而且还没有过滤renamealter思路就来了,就是把words表改成words1或者其他名字,然后在把数字表名改成words,然后在把新的words里面的flag修改成id,然后在结合上面的1' or 1=1#就可以查出flag了。

payload: 1';rename table words to words2;rename table `1919810931114514` to words;alter table words change flag id varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL;desc words;#

如下图flag

image

posted @ 2022-05-13 11:19  御七彩虹猫  阅读(193)  评论(0编辑  收藏  举报