跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客GitHub 精选镜像AI 生图工具UI配色美学隐私政策关于联系
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
SQL

Bugku CTF 实战:SQLi-0x1W 代码审计与注入绕过

通过 Bugku CTF 题目 sqli-0x1W 演示 SQL 注入漏洞挖掘。首先进行信息收集发现隐藏路径,随后进行代码审计。核心在于绕过 PHP 端的三层过滤机制(关键词黑名单、单引号位置判断、foreach 遍历检查)。利用数字夹单引号的特性构造 payload,结合 Union Select 联合查询伪造哈希值与盐值,最终实现密码绕过登录。

鲜活发布于 2026/3/29更新于 2026/7/1847 浏览
Bugku CTF 实战:SQLi-0x1W 代码审计与注入绕过

信息收集与尝试

进入页面后是一个登录框,尝试进行 SQL 注入: user='or '1'='1--+&pass='or '1'='1

返回提示:'为什么欺负我',说明触发了违禁词过滤。尝试使用 %09(Tab 字符)绕过空格: user='or%09'1'='1--+&pass='or%09'1'='1--

返回提示:'请不要让我崩溃',这是一道具有中小规模过滤的 SQL 注入题。 CTF 解题第一步是信息收集,通过 F12 查看 HTML 源码发现隐藏路径,进入后发现是一道代码审计题。

代码分析与逻辑梳理

关键代码一:过滤机制分析

核心函数 is_trying_to_hak_me() 包含三层过滤逻辑:

  1. 关键词黑名单:过滤了单引号、空格、双引、反撇、尖括号等组合,但允许单个单引号存在。空格可通过 %09 绕过。
  2. 单引号位置判断:检查传递字符串中的单引号是否被夹在两个数字或字母之间(如 a'b)。若不符合此结构(如 'or),则触发拦截。
  3. foreach 遍历检查:将黑名单数组传递给 $token,再次判断字符串中是否含有违禁字符。

已知必须构造'两个数字或字母夹住单引号'的结构才能通过过滤。可使用 union select 联合查询,例如 a'union select 1 符合条件。参与过滤的参数仅为 user。

关键代码二:登录验证逻辑

$result = ...; // 提取 sql 语句中的 $user
if (sql_error) {
    return "pls dont break me";
}
$parts = explode('$', $result['password']);
$password_hash = $parts[0];
$salt = $parts[1];
// sha256 运算比对

逻辑如下:

  1. 用户名不能为空且无违禁词。
  2. 密码字段格式为 hash$salt。
  3. 系统截取数据库中的哈希值与盐值,对用户输入的密码进行 sha256 哈希运算,比对结果决定是否登录成功。

最终 Payload

利用联合注入特性,需保证字段数一致(user 和 password)。自定义 user 值为 a'union select 1,并构造符合格式的哈希值。

  1. 生成固定哈希值:7d0515bb9407af379e2ab13a58ee470d1f8815f56ffffa07ee5c0136e00fea0d
  2. 拼接盐值:ttack
  3. 组合为:7d0515bb9407af379e2ab13a58ee470d1f8815f56ffffa07ee5c0136e00fea0d$ttack

最终 Payload:

user=a'union%09select%092,'7d0515bb9407af379e2ab13a58ee470d1f8815f56ffffa07ee5c0136e00fea0d$ttack'--+&pass=hacka

该 Payload 模拟用户 ID 为 1,密码为 hacka,成功绕过验证。

目录

  1. 信息收集与尝试
  2. 代码分析与逻辑梳理
  3. 关键代码一:过滤机制分析
  4. 关键代码二:登录验证逻辑
  5. 最终 Payload
  • 免费图片AI生成工具免费生成了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 免费图片视频在线生成30秒,将你的创意变成现实开始设计
  • X/Twitter免费视频下载器免登陆无限额度免费视频解析下载了解详情
  • 100+免费在线小游戏爽一把
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • 语义化 AI 驱动器:提示词工程的技术演进与未来展望
  • Trae AI 将设计稿自动生成前端代码图文指南
  • Linux 下 Git 入门:高效管理代码库实战指南
  • Java 编译报错 No interface expected here 的排查与修复
  • Linux 系统编译安装 GPU 版 LAMMPS 指南
  • C++ 继承与多态详解
  • Python 爬虫入门教程:从零开始学习网络数据采集
  • Stable Diffusion 提示词高阶用法实战:从精准控制到风格迁移
  • 人形机器人:从万物可机器人化到终极通用平台的百万亿赛道逻辑
  • 关闭 VSCode 中的 GitHub Copilot 功能
  • Spring Boot 启动引导类:命名约定与底层启动原理
  • Poe 平台:Quora 推出的 AI 模型整合工具
  • Python 数据清洗实战:缺失值、异常值与格式处理
  • 鸿蒙系统 PC 版安装与使用指南
  • GESP C++ 一级考试全流程及编程题核心模板
  • WSL2 环境下 Git 与 Gitee 代码管理实战
  • Android 应用视觉优化:10 个 UI 技巧
  • MySQL 核心原理与实战进阶指南
  • Qwen1.5-0.5B-Chat 轻量模型本地部署与 WebUI 实战
  • 使用 Dexie 操作前端 IndexedDB 数据库教程

相关免费在线工具

  • SQL 美化和格式化

    在线格式化和美化您的 SQL 查询(它支持各种 SQL 方言)。 在线工具,SQL 美化和格式化在线工具,online

  • SQL转CSV/JSON/XML

    解析 INSERT 等受限 SQL,导出为 CSV、JSON、XML、YAML、HTML 表格(见页内语法说明)。 在线工具,SQL转CSV/JSON/XML在线工具,online

  • CSV 工具包

    CSV 与 JSON/XML/HTML/TSV/SQL 等互转,单页多 Tab。 在线工具,CSV 工具包在线工具,online

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online

  • Markdown转HTML

    将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online