目录

引言

步骤1:用Burp Suite捕获表单请求

步骤2:用Sqlmap获取数据库名称

参数解释:

输出示例(根据题目环境调整):

步骤3:获取目标数据库中的表名

参数解释:

输出示例:

步骤4:获取表中字段及数据

参数解释:

输出示例(关键部分):

注意事项与扩展技巧

总结


引言

在CTF(网络安全竞赛)中,SQL注入是最经典的题型之一。其中,​表单输入型注入​(即通过POST请求提交的表单参数触发注入)尤为常见——无论是Web安全入门练习,还是高阶攻防对抗,这类题目都能很好地考察选手对SQL注入原理的理解与工具运用能力。

以下面的题目为例:

步骤1:用Burp Suite捕获表单请求

表单注入的核心是​​拦截POST请求​​,并将请求保存为Sqlmap可识别的格式(.txt)。具体操作如下:

  1. 打开目标页面,找到需要提交数据的表单(例如登录框、搜索框等)。
  2. 启动Burp Suite,配置浏览器代理(默认端口8080),确保流量经过Burp。
  3. 在表单中填写任意数据(如用户名填test,密码填123),提交表单。
  4. 在Burp的“Proxy”标签页中,找到刚提交的POST请求(状态码通常为200或302),右键选择“Send to Repeater”(发送到重放模块)。
  5. 点击“Repeater”标签,确认请求的Body部分包含表单参数(例如username=test&password=123)。

保存信息到txt文件里(这里保存到target.txt文件里):

步骤2:用Sqlmap获取数据库名称

目标:通过表单参数(如username)触发注入,获取目标数据库的所有库名。

进入cmd执行命令(注意要在sqlmap目录下):

python sqlmap.py -r target.txt -p username --batch --dbs
参数解释:
  • -r target.txt:指定读取之前保存的请求文件。
  • -p username:指定注入参数(即表单中可能被注入的字段,这里是username)。
  • --batch:自动确认所有交互选项(省去手动输入的麻烦)。
  • --dbs:枚举目标服务器上的所有数据库。
输出示例(根据题目环境调整):

这里看到有一个名为geek的数据库(非系统库,大概率是题目目标库),后续操作将围绕它展开。

步骤3:获取目标数据库中的表名

目标:在geek数据库中,找到可能存储用户数据的表(如userusers等)。

执行命令:

python sqlmap.py -r target.txt -p username --batch -D geek --tables
参数解释:
  • -D geek:指定要操作的目标数据库(geek)。
  • --tables:枚举该数据库下的所有表。
输出示例:

 这里看到两个表:geekuserl0ve1ysq1。根据CTF常见命名习惯,l0ve1ysq1(可能是“love1ysql1”的变形)更可能是存储敏感数据的表(比如Flag),优先排查它。

步骤4:获取表中字段及数据

目标:从l0ve1ysq1表中提取字段名和具体数据(尤其是Flag)。

执行命令:
 

python sqlmap.py -r target.txt -p username --batch -D geek -T l0ve1ysq1 --dump
参数解释:
  • -T l0ve1ysq1:指定要操作的表(l0ve1ysq1)。
  • --dump:导出该表的所有数据(包括字段名和内容)。
输出示例(关键部分):


最终,我们在id=16的记录中找到了Flag:flag{898d3190-8bd7-4677-b553-8142542ae251}

注意事项与扩展技巧

  1. ​参数选择​​:如果-p指定的参数(如username)未被注入,Sqlmap会提示“parameter not injectable”,此时需尝试其他参数(如password)。
  2. ​绕过过滤​​:若题目中对关键字(如UNIONSELECT)做了过滤,可通过--tamper参数使用绕过脚本(如space2comment用注释符替换空格)。
  3. ​手动验证​​:Sqlmap虽强大,但CTF中可能存在“反套路”设计(如需要结合报错注入、布尔盲注)。建议先手动验证注入点类型(通过输入'看是否报错),再决定是否完全依赖工具。
    ​​​​​

总结

本次实战演示了如何用Sqlmap快速破解表单输入型SQL注入题:从Burp抓包保存请求,到通过--dbs--tables--dump逐步获取数据库结构与数据,最终定位Flag。

 (注:本文实验环境为模拟场景,请勿用于非法渗透测试。)

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

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

相关文章

质数时间(二分查找)

题目描述如果把一年之中的某个时间写作 a 月 b 日 c 时 d 分 e 秒的形式,当这五个数都为质数时,我们把这样的时间叫做质数时间,现已知起始时刻是 2022 年的 a 月 b 日 c 时 d 分 e 秒,终止时刻是 2022 年的 u 月 v 日 w 时 x 分 y…

Python训练Day29

浙大疏锦行 类的装饰器装饰器思想的进一步理解:外部修改、动态类方法的定义:内部定义和外部定义

新手DBA实战指南:如何使用gh-ost实现MySQL无锁表结构变更

新手DBA实战指南:如何使用gh-ost实现MySQL无锁表结构变更 作为DBA,大表结构变更(DDL)一直是令人头疼的问题。传统的ALTER TABLE操作会锁表,严重影响业务连续性;而常见的pt-online-schema-change工具虽然能实现在线变更,但依赖触发器机制,在高并发场景下性能表现不佳。本…

OSPF综合

一、实验拓扑二、实验需求1、R4为ISP,其上只配置IP地址;R4与其他所直连设备间均使用公有IP; 2、R3-R5、R6、R7为MGRE环境,R3为中心站点; 3、整个OSPF环境IP基于172.16.0.0/16划分;除了R12有两个环回&#x…

技术面试知识点详解 - 从电路到编程的全栈面经

技术面试知识点详解 - 从电路到编程的全栈面经 目录 模拟电路基础数字电路原理电源设计相关编程语言基础数据库与并发网络协议基础算法与数据结构 模拟电路基础 1. 放大电路类型判断 这是模拟电路面试的经典题目,通过电压放大倍数判断放大电路类型: …

LangGraph认知篇-Command函数

Command简述 在 LangGraph 中,Command 是一个极具实用性的功能,它能够将控制流(边)和状态更新(节点)巧妙地结合起来。这意味着开发者可以在同一个节点中,既执行状态更新操作,又决定下…

【目标检测】小样本度量学习

小样本度量学习(Few-Shot Metric Learning)通常用于分类任务​(如图像分类),但它也可以与目标检测(Object Detection)结合,解决小样本目标检测(Few-Shot Object Detectio…

cmd怎么取消关机命令

在 Windows 的命令提示符(CMD)中取消已计划的关机操作,可以通过 shutdown 命令的 ​**-a**​ 参数实现。以下是具体步骤:​操作方法​​打开 CMD​按下 Win R 组合键,输入 cmd 并回车,打开命令提示符窗口。…

网易云音乐硬刚腾讯系!起诉SM娱乐滥用市场支配地位

企查查APP显示,近日,法院公开杭州乐读科技有限公司、杭州网易云音乐科技有限公司起诉SM ENTERTAINMENT CO. 、卡斯梦(上海)文化传播有限公司等开庭信息,案由涉及滥用市场支配地位纠纷。公告显示,该案件计划…

[css]切角

使用css实现一个切角的功能&#xff0c;有以下几种方案&#xff1a; <div class"box"></div>方案一&#xff1a;linear-gradient linear-gradient配合backgroud-image可以实现背景渐变的效果。linear-gradient的渐变过渡区的占比是总的空间&#xff08;高…

分享一个可以测试离线服务器性能的脚本

在日常运维工作中&#xff0c;经常会遇到系统性能莫名跟不上业务需求的情况&#xff1a;服务器响应变慢、应用加载卡顿、资源占用异常飙升等问题频繁出现&#xff0c;却难以快速问题根源究竟在CPU过载、内存泄漏、磁盘I/O阻塞还是网络带宽瓶颈。这种时候&#xff0c;特别需要一…

Python Pandas.unique函数解析与实战教程

Python Pandas.unique 函数解析与实战教程 摘要 本文章旨在全面地解析 pandas 库中的 unique 函数。pandas.unique 是一个用于从一维数组型(array-like)对象中提取唯一值的高效工具。我们将从其核心功能、函数签名、参数详解、返回值类型,到关键行为特性(如顺序保留、缺失…

排序算法入门:直接插入排序详解

这里写目录标题介绍原理代码实现分析介绍 直接插入排序是一种简单直观的排序算法&#xff0c;适用于小规模数据或基本有序的数据集。其核心思想是构建有序序列&#xff0c;对于未排序数据&#xff0c;在已排序序列中从后向前扫描&#xff0c;找到相应位置并插入。 原理 我们…

ClickHouse MergeTree引擎:从核心架构到三级索引实战

摘要 MergeTree是ClickHouse最核心的存储引擎&#xff0c;采用列式存储LSM-Tree架构设计&#xff0c;支持高效的数据写入、合并和查询。本文将全面解析MergeTree引擎的基础概念、数据流、核心架构、索引系统以及常见问题。 基础篇&#xff1a; 一、MergeTree引擎基础概念 1. 定…

电脑手机热点方式通信(上)

电脑连接手机热点时的无线链路情况&#xff1a; 电脑上网时&#xff08;从服务器下载数据&#xff0c;或者上传指令、数据&#xff09;&#xff0c;首先电脑与手机之间基于WiFi协议在2.4G频段或者5G频段通信&#xff0c;然后手机与基站之间再基于4G LTE或者5G NR协议在2412MHz…

MySQL CPU占用过高排查指南

MySQL CPU 占用过高时&#xff0c;排查具体占用资源的表需结合系统监控、数据库分析工具和 SQL 诊断命令。&#x1f50d; ​一、快速定位问题根源​​确认 MySQL 进程占用 CPU​使用 top 或 htop 命令查看系统进程&#xff0c;确认是否为 mysqld 进程导致 CPU 飙升。若 MySQL 进…

软件交付终极闸口:验收测试全解析

验收测试&#xff1a;软件交付的关键环节 目录 验收测试&#xff1a;软件交付的关键环节 一、验收测试&#xff1a;软件交付的终极闸口 核心目标与作用 在 SDLC 中的位置 二、验收测试类型详解&#xff1a;精准匹配业务场景 三、验收测试全流程解析&#xff1a;从计划到…

深度学习核心:卷积神经网络 - 原理、实现及在医学影像领域的应用

&#x1f9d1; 博主简介&#xff1a;CSDN博客专家、CSDN平台优质创作者&#xff0c;高级开发工程师&#xff0c;数学专业&#xff0c;10年以上C/C, C#,Java等多种编程语言开发经验&#xff0c;拥有高级工程师证书&#xff1b;擅长C/C、C#等开发语言&#xff0c;熟悉Java常用开发…

多线程(二) ~ 线程核心属性与状态

文章目录一. 线程创建&#xff08;start&#xff09;&#xff08;一&#xff09;继承Thread类&#xff0c;重写run&#xff08;二&#xff09;继承Runnable类&#xff0c;重写run&#xff08;三&#xff09;Thread匿名内部类重写&#xff08;四&#xff09;Runnable匿名内部类重…

Linux---编辑器vim

一、vim的基本概念1.三种模式①命令模式控制屏幕光标的移动&#xff0c;字符、字或行的删除&#xff0c;移动复制某区段及进入插入模式或者进去底行模式②插入模式可进行文本输入&#xff0c;按Esc回到命令行模式③底行模式文件保存或退出&#xff0c;也可以进行文件替换&#…