Ubuntu 22.04 安装 sqlmap 1.10.10 指南

Ubuntu 22.04 从零安装 sqlmap 1.10.10:pip 在线(主线)、官方 tar.gz 离线、apt 应急三条实测方案,含版本选型、升级/多版本回退、卸载清理与 5 条 FAQ 排障实录。

sqlmap安全测试sqlmap2026/10/24

Ubuntu 22.04 安装 sqlmap 1.10.10 指南

目标:在 Ubuntu 22.04 服务器上从零安装 sqlmap 1.10.10 并跑通第一次注入检测验证。本文给出 pip 在线安装(官方推荐)、官方 tar.gz 源码离线安装、apt 发行版仓库应急安装共 3 条实测方案,覆盖版本选型、升级/多版本、卸载与常见问题排障。全部命令与回显均在 Ubuntu 22.04.4 LTS 实测通过(2026-10-24)。

一、环境信息

本章记录实测环境的关键信息,读者在同类环境可直接复现。

  • 操作系统:Ubuntu 22.04.4 LTS(PRETTY_NAME="Ubuntu 22.04.4 LTS")
  • 架构:x86_64
  • Python:3.10.12(系统自带 /usr/bin/python3)
  • pip:22.0.2(系统自带 /usr/bin/pip3)
  • 安装目标:sqlmap 1.10.10(PyPI 最新稳定版,2026-10-24 查询)
  • 工具形态:纯 Python 命令行工具,安装即用,无守护进程、无 Web 界面、无需数据库依赖(因此本文没有 systemd 托管章节——它不是服务型软件,安装完成即可运行)

💡 说明:sqlmap 支持 Python 2.7 与 3.x(官方 README "Installation"节,2026-10-24 查询),但 Ubuntu 22.04 自带 Python 3.10,直接使用即可,无需额外装解释器。

二、前置条件

安装前先确认系统满足两个前置条件:Python/pip 可用,且能访问软件源。

  1. 确认 Python 与 pip 可用(以下为实测回显):
python3 --version
Python 3.10.12
pip3 --version
pip 22.0.2 from /usr/lib/python3/dist-packages/pip (python 3.10)
  1. 网络可达性:方案 A(pip)需访问 pypi.org;方案 B(源码)需访问 github.com;方案 C(apt)走 Ubuntu 镜像源。若访问国外源缓慢,可为 pip/wget 配置代理,例如:
export http_proxy=http://192.168.1.62:7897 https_proxy=http://192.168.1.62:7897
  1. 权限:以具备 sudo 权限的用户执行(本文以 root 实测)。

验证前置条件是否满足的判断依据:上述两条版本命令均有正常回显、无 command not found。

三、版本选型说明

sqlmap 的版本号分布在 GitHub Release、Git tag、PyPI 三个通道上,选型时以"实际可安装的稳定版本"为准。2026-10-24 实查结论:

通道版本值取证方式
PyPI 官方包(本文方案 A)1.10.10pip3 index versions sqlmap 实测 LATEST 字段
GitHub Release 最新发布1.10(2026-01-01 发布)releases/latest 重定向
GitHub tag 线(本文方案 B)1.10.10git ls-remote --tags
Ubuntu 22.04 仓库(本文方案 C)1.6.4-2apt-cache policy sqlmap

PyPI 可用版本线的实测开头部分(pip3 index versions sqlmap,节选):

sqlmap (1.10.10)
Available versions: 1.10.10, 1.10.9, 1.10.8, 1.10.7, 1.10.6, 1.10.5, 1.10.4, 1.10.3, 1.10.2, 1.10, 1.9.12, 1.9.11, 1.9.10, 1.9.9, 1.9.8, 1.9.7, 1.9.6, 1.9.5, 1.9.4, 1.9.3, 1.9.2, 1.9, 1.8.12.post1, ...
  INSTALLED: 1.10.10
  LATEST:    1.10.10

关键差异与如何选:方案 A(pip 1.10.10)是官方 PyPI 包、版本最新、升级最方便,作为主线推荐;方案 B(源码 1.10.10)适合无外网的服务器(离线包拷入)与需要直接阅读/魔改源码的场景;方案 C(apt 1.6.4)版本落后 4 个大版本,仅适合无任何外网且只做基础验证的应急场景。本文主线选方案 A。

四、在线安装方案(A:pip 官方 PyPI 包)

本方案通过 pip 从 PyPI 安装官方 sqlmap 包,一条命令完成,是官方维护的发布通道。

4.1 执行安装

pip3 install sqlmap

实测回显(逐行照抄):

Collecting sqlmap
  Using cached sqlmap-1.10.10-py2.py3-none-any.whl (8.8 MB)
Installing collected packages: sqlmap
Successfully installed sqlmap-1.10.10
WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv

💡 说明:安装包自带全部运行所需内容(8.8 MB wheel,纯 Python),同时会带入唯一可选依赖 pymysql(用于直连 MySQL 场景)。WARNING 是 root 身份跑 pip 的通用提示,不影响使用;生产环境若介意,改用 pip3 install --user sqlmap(装到 ~/.local/bin)或 venv。

4.2 验证安装

验证命令与实测回显:

which sqlmap
/usr/local/bin/sqlmap
sqlmap --version
1.10.10#pip

4.3 安装产物说明(包内布局)

pip 把 sqlmap 完整源码树装到 site-packages,命令入口装到 /usr/local/bin。实测目录(ls /usr/local/lib/python3.10/dist-packages/sqlmap/):

data
doc
extra
__init__.py
lib
LICENSE
plugins
__pycache__
README.md
sqlmapapi.py
sqlmapapi.yaml
sqlmap.conf
sqlmap.py
tamper
tests
thirdparty

配置文件 sqlmap.conf、API 服务 sqlmapapi.py、tamper 脚本目录都在包内,后续《sqlmap 1.10.10 配置参数详解》会用到该路径。

4.4 基本帮助验证

sqlmap -h

实测回显首部(输出共 90 行,此处节选前 20 行):

        ___
       __H__
 ___ ___[,]_____ ___ ___  {1.10.10#pip}
|_ -| . [)]     | .'| . |
|___|_  [.]_|_|_|__,|  _|
      |_|V...       |_|   https://sqlmap.org

Usage: python3 sqlmap [options]

Options:
  -h, --help            Show basic help message and exit
  -hh                   Show advanced help message and exit
  --version             Show program's version number and exit
  -v VERBOSE            Verbosity level: 0-6 (default 1)

  Target:
    At least one of these options has to be provided to define the
    target(s)

    -u URL, --url=URL   Target URL (e.g. "http://www.site.com/vuln.php?id=1")

至此方案 A 安装完成,sqlmap --version 输出 1.10.10#pip 即为生效标志。

五、源码安装方案(B:官方 tar.gz 离线安装)

本方案下载官方 GitHub tag 快照 tar.gz,解压即用,适合无外网服务器(在其他机器下载后拷入)与需要直接读源码的场景。sqlmap 源码零编译、零依赖,解压即可运行。

5.1 下载官方 tar.gz

wget "https://github.com/sqlmapproject/sqlmap/archive/refs/tags/1.10.10.tar.gz" -O sqlmap-1.10.10.tar.gz

实测回显(-q 静默模式下无进度条,以下用 ls 确认产物):

ls -l sqlmap-1.10.10.tar.gz
-rw-r--r-- 1 root root 8373244 10月 24 08:39 sqlmap-1.10.10.tar.gz

5.2 校验完整性

记录官方 tag 快照的 SHA256(同 tag 永不变更,可作为离线分发基线):

sha256sum sqlmap-1.10.10.tar.gz
7dd690c62fb1ae58bd8555b91012896863c47fc245dc6d39ba300362a3368d17  sqlmap-1.10.10.tar.gz

5.3 解压并直接运行

tar xzf sqlmap-1.10.10.tar.gz

验证(解压目录内直接用 python3 运行入口):

python3 sqlmap-1.10.10/sqlmap.py --version

实测回显:

1.10.10#stable

5.4 可选:加入 PATH

如需全局命令可用,建软链(实测):

ln -sf /opt/data/sqlmap-1.10.10/sqlmap.py /usr/local/bin/sqlmap-src
sqlmap-src --version
1.10.10#stable

💡 说明:源码方案的版本号后缀是 #stable(Git tag 打包),pip 方案是 #pip,两者同为 1.10.10 同一代码基线。源码方案无卸载概念,删除目录即完成清理。

六、发行版仓库安装方案(C:apt 应急)

Ubuntu 22.04 的 universe 仓库收录了 sqlmap,但版本停留在 1.6.4,仅建议在完全断外网、又急需一个可用版本时应急使用。

6.1 查询仓库版本

apt-cache policy sqlmap

实测回显:

sqlmap:
  已安装:(无)
  候选: 1.6.4-2
  版本列表:
     1.6.4-2 500
        500 http://cn.archive.ubuntu.com/ubuntu jammy/universe amd64 Packages

6.2 执行安装

apt-get install -y sqlmap

实测回显(节选首尾):

正在选中未选择的软件包 sqlmap。
准备解压 .../sqlmap_1.6.4-2_all.deb  ...
正在解压 sqlmap (1.6.4-2) ...
正在设置 python3-magic (2:0.4.24-2) ...
正在设置 sqlmap (1.6.4-2) ...
正在处理用于 man-db (2.10.2-1) 的触发器 ...

6.3 验证与版本落后告警

/usr/bin/sqlmap --version

实测回显:

1.6.4#stable
[08:39:35] [WARNING] your sqlmap version is outdated

⚠️ 注意:apt 版安装后与 pip 版会共存(/usr/bin/sqlmap vs /usr/local/bin/sqlmap),PATH 中 /usr/local/bin 优先,sqlmap 命令默认仍指向 pip 版。如需临时用 apt 版可显式写全路径 /usr/bin/sqlmap。实测验证后本文已用 apt-get remove -y sqlmap 移除(回显:"正在卸载 sqlmap (1.6.4-2) ..."),后续实验均用 pip 版 1.10.10。

七、多方案对比与选择建议

维度A:pip 在线B:tar.gz 源码C:apt 仓库
版本1.10.10(最新)1.10.10(最新 tag)1.6.4-2(落后约 4 个大版本)
是否需联网需(pypi.org)下载时需(可离线拷入)需 Ubuntu 镜像源
安装方式pip3 install 一条命令wget+tar 解压即用apt-get install
升级方式pip3 install -U sqlmap 或 sqlmap --update重新下载新 tag 解压apt upgrade(基本无更新)
命令入口/usr/local/bin/sqlmap解压目录 sqlmap.py(可软链)/usr/bin/sqlmap
卸载pip3 uninstall sqlmap删目录apt-get remove sqlmap
适用场景日常主线,首选断网服务器、源码研究极端应急

选择建议:能联网选 A;内网隔离选 B(外网机下载、校验 sha256 后拷入);C 仅在两者都不可行时兜底,并要接受版本落后与工具自身的 outdated 告警。

八、配置说明

sqlmap 安装即用,没有安装后的强制配置步骤,也没有服务端口、数据目录之类的基础设施。需要了解的三类"配置"位置如下:

  1. 选项默认值:内置在包内 lib/core/defaults.py(level=1、risk=1、threads=1、timeout=30、retries=3 等),日常通过命令行开关覆盖,详见《sqlmap 1.10.10 配置参数详解》。
  2. 配置文件:包内自带模板 /usr/local/lib/python3.10/dist-packages/sqlmap/sqlmap.conf,可用 -c 显式加载,把常用参数固化成"扫描预案"。
  3. 运行时产物目录:首次扫描后自动生成 ~/.local/share/sqlmap/output/<目标>/(会话 session.sqlite、日志 log、拖库 dump/),无需手动创建。

验证配置可用性的最小检查(实测):

ls /usr/local/lib/python3.10/dist-packages/sqlmap/sqlmap.conf
/usr/local/lib/python3.10/dist-packages/sqlmap/sqlmap.conf

九、升级与多版本管理

9.1 升级到最新版

pip 版自带的 --update 开关会从 PyPI 拉最新稳定版,实测:

sqlmap --update

实测回显(节选):

[08:38:04] [INFO] updating sqlmap to the latest stable version from the PyPI repository

[08:38:04] [INFO] update in progress[08:38:05] [INFO] updated to the latest revision '1.10.10'

等价的 pip 标准方式:

pip3 install -U sqlmap

9.2 安装指定旧版本(多版本并存/回退)

pip 支持精确版本号,可用于回退(示例命令形态,版本号来自第 4.4 节 pip3 index versions sqlmap 实测列表):

pip3 install sqlmap==1.10.9

回退后再升回最新:

pip3 install sqlmap==1.10.10

💡 说明:源码方案的多版本管理 = 下载多个 tag tar.gz 各自解压到不同目录(如 sqlmap-1.10.9/、sqlmap-1.10.10/),用哪个就执行哪个目录的 sqlmap.py,天然并存、零冲突。

十、常见问题(FAQ)

Q1:运行时报 turning off pre-connect mechanism because of incompatible server ('BaseHTTP/0.6 Python/3.x'),是故障吗?

不是。这是 sqlmap 检测到目标 Web 服务器是 Python 简易 HTTP 服务(自建靶场常见)时自动关闭"预连接"优化的提示,不影响检测。实测样例(对自建注入靶场运行):

[08:41:23] [WARNING] turning off pre-connect mechanism because of incompatible server ('BaseHTTP/0.6 Python/3.10.12')

Q2:pip 安装时下载缓慢或超时怎么办?

为当前会话配置代理后重试:

export http_proxy=http://192.168.1.62:7897 https_proxy=http://192.168.1.62:7897
pip3 install sqlmap

或直接改走方案 B(tar.gz + 代理下载后离线拷入)。

Q3:sqlmap: command not found,但 pip 显示安装成功?

多半是 ~/.local/bin(--user 安装)不在 PATH。验证与解决:

pip3 show -f sqlmap | head -5
Name: sqlmap
Version: 1.10.10
Summary: Automatic SQL injection and database takeover tool
Home-page: https://sqlmap.org
Author: Bernardo Damele Assumpcao Guimaraes, Miroslav Stampar

若入口在 ~/.local/bin/sqlmap,把它加入 PATH:export PATH=$HOME/.local/bin:$PATH,或改用 root 全局安装(本文方案 A 实测入口为 /usr/local/bin/sqlmap)。

Q4:apt 装的 sqlmap 提示 your sqlmap version is outdated?

Ubuntu 22.04 仓库版本为 1.6.4-2(见 6.1 节实测),落后于官方 1.10.10。工具每次运行都会提示 outdated。解决:卸掉 apt 版改用 pip 版(方案 A)。实测告警回显:

1.6.4#stable
[08:39:35] [WARNING] your sqlmap version is outdated

Q5:pip 与 apt 版共存时 sqlmap 命令到底执行哪个?

看 PATH 顺序,/usr/local/bin 在 /usr/bin 之前,因此 sqlmap 指向 pip 版。用 which sqlmap 确认(实测输出 /usr/local/bin/sqlmap),需要 apt 版时显式执行 /usr/bin/sqlmap。

十一、卸载与清理

11.1 卸载 pip 版

pip3 uninstall -y sqlmap

⚠️ 注意:本文实验环境保留 pip 版 1.10.10 作为后续篇章(《sqlmap 1.10.10 配置参数详解》《sqlmap 1.10.10 常用 CLI 命令与工具详解》)的实测工具,此处仅给出卸载命令形态;执行后可用 which sqlmap 确认已移除(应无输出),重装用第 4.1 节命令。

11.2 卸载 apt 版

apt-get remove -y sqlmap

实测回显(节选):

(正在读取数据库 ... 系统当前共安装有 226616 个文件和目录。)
正在卸载 sqlmap (1.6.4-2) ...
正在处理用于 man-db (2.10.2-1) 的触发器 ...

11.3 清理运行时产物

扫描产物目录按需删除(会话与拖库 CSV 都在这里):

rm -rf ~/.local/share/sqlmap/output

11.4 清理源码版

删除解压目录与软链即可:

rm -rf /opt/data/sqlmap-1.10.10
rm -f /usr/local/bin/sqlmap-src

十二、参考链接