先判断是单引号闭合还是双引号闭合
输入单引号,发现报错
接下来开始查询字段数
到3的时候报错了,说明是2个字段
接下来就该查询回显的位置
但是输入后发现select被过滤了
尝试了大小写绕过,还是不行。木有办法了,又去看了wp,发现用了堆叠注入,就是一次性执行多条sql语句。
查一下表名
看words中的内容,发现没有flag的相关信息
在看那一串数字的,但是这里要注意那一串数字的表名要用反单引号括起来,因为定义的数据类型,字段添加标识符反单引号,值进行转义处理。
那么接下来就是要去看flag中的信息,wp中用到了,但是没有显示flag的信息
1' or 1=1#
wp中用到了下面的操作
- 我们把表 words 改名为其它,
- 然后把表 1919810931114514 改名为 words ,
- 再在表 1919810931114514 插入一列 id ,
- 或直接将列 flag 改名为 id ,
- 当我们再次查询时,不就是查询 flag 所在表了吗,且可以被展示出来。
下面是payload
- 1';rename table `words` to `words1`;rename table `1919810931114514` to `words`;alter table `words` change `flag` `id` varchar(100) character set utf8 collate utf8_general_ci not NULL;#
然后在用显示所有的内容就可以了
关于这些方面真的太欠缺了,后面要多学习,下来要好好消化。
wp中还有一种方法是通过handler读取数据,但是现在还是先把上面的东西先弄熟再去学习它,后面在写一个用它的解法和相关知识。