sqlmap:自动SQL注入和数据库接管工具

发布于:2025-02-28 ⋅ 阅读:(12) ⋅ 点赞:(0)

SQL 注入攻击是 Web 安全领域最常见的漏洞之一,今天给大家介绍一个自动化 SQL 注入和数据库接管工具:sqlmap。sqlmap 作为一款开源渗透测试工具,能帮助安全测试人员快速发现并利用 SQL 注入漏洞接管数据库服务器。

在这里插入图片描述

功能特性

sqlmap 使用 Python 语言开发,主要功能包括:

  • 支持各种主流数据库,包括 MySQL、Oracle、PostgreSQL、Microsoft SQL Server、Microsoft Access、IBM DB2、SQLite、Firebird、Sybase、SAP MaxDB、Informix、MariaDB、MemSQL、TiDB、CockroachDB、HSQLDB、H2、MonetDB、Apache Derby、Amazon Redshift、Vertica、Mckoi、Presto、Altibase、MimerSQL、CrateDB、Greenplum、Drizzle、Apache Ignite、Cubrid、InterSystems Cache、IRIS、eXtremeDB、FrontBase、Raima Database Manager、YugabyteDB、Aurora、OpenGauss、ClickHouse 以及 Virtuoso 等。
  • 六种 SQL注入技术:布尔盲注、时间盲注、错误注入、UNION 查询注入、堆叠查询以及 OOB 注入。
  • 支持通过 DBMS 登录凭证、IP 地址、端口和数据库名称直接连接到数据库,不需通过 SQL 注入进行连接。
  • 可以枚举用户名、密码哈希值、权限、角色、数据库、表名以及列名。
  • 支持自动识别密码哈希值的格式并且基于字典进行破解。
  • 可以导出完整的数据表,也可以导出部分数据行或者指定字段的数据,甚至可以导出字段中的部分内容。
  • 支持数据库名称,表名以及字段名的搜索。例如,可以搜索名称包含 name 或者 pass 的字段,从而找到应用程序的用户登录信息。
  • 对于 MySQL、PostgreSQL 以及 Microsoft SQL Server,可以下载或者上传任何文件。
  • 对于 MySQL、PostgreSQL 以及 Microsoft SQL Server,可以执行任意操作系统命令并获取返回结果。
  • 支持在攻击者和数据库服务器操作系统之间建立带外(out-of-band)有状态 TCP 连接。这个连接通道可以是交互式命令提示符、Meterpreter 会话或图形用户界面 (VNC) 会话。
  • 可以通过 Meterpreter 命令 getsystem 提升数据库进程用户的特权。

使用示例

首先打开官方网址 https://sqlmap.org/,点击右侧“Download”按钮进行下载:

在这里插入图片描述

选择 zip 或者 tarball 文件进行下载,下载完成后解压即可。

sqlmap 基于 Python 开发,因此我们需要提前安装 Python 环境。然后进入安装目录,执行命令 python sqlmap.py -h 查看帮助信息:

python sqlmap.py -h
        ___
       __H__
 ___ ___[(]_____ ___ ___  {1.9.2.15#dev}
|_ -| . [(]     | .'| . |
|___|_  ["]_|_|_|__,|  _|
      |_|V...       |_|   https://sqlmap.org

Usage: sqlmap.py [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")
    -g GOOGLEDORK       Process Google dork results as target URLs

...

以下是一个使用示例:

使用以下命令检测目标网站是否存在注入点:

python sqlmap.py -u "http://example.com/page?id=1" --batch

其中,-u 用于指定目标 URL;–batch:自动选择默认选项,避免交互式询问。详细介绍请参考官方文档。

注意事项

不要未经对方同意使用 sqlmap 对其网站进行漏洞测试。


网站公告

今日签到

点亮在社区的每一天
去签到