Sqlmap中文使用手册 - Enumeration模块参数使用

目录

  • [1. Enumeration模块的帮助文档](#1. Enumeration模块的帮助文档)
  • [2. 各个参数的介绍](#2. 各个参数的介绍)
    • [2.1 -a, --all](#2.1 -a, --all)
    • [2.2 -b, --banner](#2.2 -b, --banner)
    • [2.3 --current-user](#2.3 --current-user)
    • [2.4 --current-db](#2.4 --current-db)
    • [2.5 --hostname](#2.5 --hostname)
    • [2.6 --is-dba](#2.6 --is-dba)
    • [2.7 --users](#2.7 --users)
    • [2.8 --passwords](#2.8 --passwords)
    • [2.9 --privileges](#2.9 --privileges)
    • [2.10 --roles](#2.10 --roles)
    • [2.11 --dbs](#2.11 --dbs)
    • [2.12 --tables](#2.12 --tables)
    • [2.13 --columns](#2.13 --columns)
    • [2.14 --schema](#2.14 --schema)
    • [2.15 --count](#2.15 --count)
    • [2.16 --dump](#2.16 --dump)
    • [2.17 --dump-all](#2.17 --dump-all)
    • [2.18 --search](#2.18 --search)

1. Enumeration模块的帮助文档

bash 复制代码
Enumeration:
    These options can be used to enumerate the back-end database
    management system information, structure and data contained in the
    tables

    -a, --all           Retrieve everything
    -b, --banner        Retrieve DBMS banner
    --current-user      Retrieve DBMS current user
    --current-db        Retrieve DBMS current database
    --hostname          Retrieve DBMS server hostname
    --is-dba            Detect if the DBMS current user is DBA
    --users             Enumerate DBMS users
    --passwords         Enumerate DBMS users password hashes
    --privileges        Enumerate DBMS users privileges
    --roles             Enumerate DBMS users roles
    --dbs               Enumerate DBMS databases
    --tables            Enumerate DBMS database tables
    --columns           Enumerate DBMS database table columns
    --schema            Enumerate DBMS schema
    --count             Retrieve number of entries for table(s)
    --dump              Dump DBMS database table entries
    --dump-all          Dump all DBMS databases tables entries
    --search            Search column(s), table(s) and/or database name(s)
    --comments          Check for DBMS comments during enumeration
    --statements        Retrieve SQL statements being run on DBMS
    -D DB               DBMS database to enumerate
    -T TBL              DBMS database table(s) to enumerate
    -C COL              DBMS database table column(s) to enumerate
    -X EXCLUDE          DBMS database identifier(s) to not enumerate
    -U USER             DBMS user to enumerate
    --exclude-sysdbs    Exclude DBMS system databases when enumerating tables
    --pivot-column=P..  Pivot column name
    --where=DUMPWHERE   Use WHERE condition while table dumping
    --start=LIMITSTART  First dump table entry to retrieve
    --stop=LIMITSTOP    Last dump table entry to retrieve
    --first=FIRSTCHAR   First query output word character to retrieve
    --last=LASTCHAR     Last query output word character to retrieve
    --sql-query=SQLQ..  SQL statement to be executed
    --sql-shell         Prompt for an interactive SQL shell
    --sql-file=SQLFILE  Execute SQL statements from given file(s)

2. 各个参数的介绍

2.1 -a, --all

参数: -a, --all

作用:Retrieve everything。检索访问的所有内容。不推荐这样做,会产生大量的请求来检索无用的数据。

2.2 -b, --banner

参数: -b, --banner

作用:Retrieve DBMS banner。检索数据库管理系统的详细信息。

背景:大多数现代数据库管理系统都有一个函数或一个环境变量,它返回数据库管理系统版本,并最终返回其修补程序级别(即底层系统)的详细信息。通常该函数是version()和环境变量@@version,但是这取决于目标DBMS。

2.3 --current-user

参数:--current-user

作用:Retrieve DBMS current user。检索数据库管理系统的当前用户。

2.4 --current-db

参数:--current-db

作用:Retrieve DBMS current database。检索web应用程序链接到的数据库管理系统的数据库名称。

2.5 --hostname

参数:--hostname

作用:Retrieve DBMS server hostname。检索数据库管理系统的主机名。

2.6 --is-dba

参数:--is-dba

作用:Detect if the DBMS current user is DBA。可以检测当前数据库管理系统会话用户是否是数据库管理员(也称为DBA)。如果是,sqlmap则返回True ,反之亦然False。

2.7 --users

参数:--users

作用:Enumerate DBMS users。枚举用户列表,如果当前用户有读取包含有关DBMS用户信息的系统表的权限。

2.8 --passwords

参数:--passwords

作用:Enumerate DBMS users password hashes。枚举每个用户的密码哈希值,如果当前用户有读取包含有关DBMS用户信息的系统表的权限。

使用:sqlmap将首先枚举用户,然后针对每个用户使用不同的密码哈希。还可以使用开关-U来指定要破解哪个用户的密码hash,如果值为CU,则会自动破解当前用户的密码。

例如:
python sqlmap.py -u "http://192.168.136.131/sqlmap/pgsql/get_int.php?id=1" --passwords -U CU

2.9 --privileges

参数: --privileges

作用:Enumerate DBMS users privileges。枚举每个用户的权限,如果当前用户有读取包含有关DBMS用户信息的系统表的权限。

使用:通过权限,sqlmap还会显示哪些是数据库管理员。

还可以使用-U指定用户,如果值为CU,则默认为当前用户。

2.10 --roles

参数:--roles

作用:Enumerate DBMS users roles。枚举每个用户的角色,如果当前用户有读取包含有关DBMS用户信息的系统表的权限。此功能仅在DBMS为Oracle时可用。

使用:还可以使用-U指定用户。如果值为CU,则默认为当前用户。

2.11 --dbs

参数: --dbs

作用:Enumerate DBMS databases。枚举出所有的数据库,如果当前用户有读取包含有关DBMS用户信息的系统表的权限。

2.12 --tables

参数:--tables

作用:Enumerate DBMS database tables。枚举数据库的所有表,如果当前用户有读取包含有关DBMS用户信息的系统表的权限。

使用:

  1. 只使用--tables开关来列举数据库表,sqlmap将列出所有数据库的表。
  2. -D DBname:DBMS database to enumerate,指定数据库,将列出指定数据库的所有表。
  3. --exclude-sysdbs:Exclude DBMS system databases when enumerating tables,来排除系统数据库。

2.13 --columns

参数:--columns

作用:Enumerate DBMS database table columns。枚举数据库的表的字段名字,如果当前用户有读取包含有关DBMS用户信息的系统表的权限。

使用:

  1. -T指定表,-D指定数据库,-C指定列。
  2. 若只指定了数据表而没有指定数据库则默认使用当前数据库。
  3. 若没有指定列则列举表中全部列。

2.14 --schema

参数:--schema

作用:Enumerate DBMS schema。用户可以使用此开关获取数据库的架构,包含数据库、表和字段,以及各自的类型。

使用:使用--exclude-sysdbs,将不会获取数据库自带的系统库内容。

2.15 --count

参数: --count

作用:Retrieve number of entries for table(s)。如果用户想要知道表中的数据个数,而不是数据内容,可以使用这个开关。

2.16 --dump

参数: --dump

作用:Dump DBMS database table entries。如果当前管理员有权限读取数据库的其中一个表的话,那么就能获取整个表的所有内容。

使用:

  1. 使用-T-D参数指定数据库和数据库表,如果不指定数据库的话,则默认使用当前数据库。
  2. 使用--dump-D可以获取数据库所有表的内容(不使用-C-T)。

背景:

Sqlmap会自动将参数--dump列举的数据保存到CSV格式文件中,文件具体路径会在Sqlmap的输出中给出。

若只想列举部分数据可以使用参数--start--stop分别从某个条目开始输出存储,并在某个条目处停止。如只想列举第一条数据可以添加--stop 1

只想列举第二和第三条数据可以添加--start 1 --stop 3

你还可以使用--first--last限制输出的字符范围,例如如果你只想输出第三列到第五列的条目,那么你可以使用--first 3 --last 5。此功能只适用于盲注,因为对于报错注入和联合注入,列数量需要完全相同。

有时候(例如,对于Microsoft SQL Server,Sybase和SAP MaxDB),因为列数据类型不同,sqlmap不能直接利用OFFSET m,n对列进行输出。在这种情况下,sqlmap会输出最适合的pivot列,然后利用此列来检索其他的列,有时候当sqlmap选择的privot列不正确时,我们可以使用参数--pivot-column(例如--pivot-column=id)来指定pivot列。

除了使用上述参数来限制输出的列数(或者条目),还可以使用--where参数,后面接的合理语句将会被自动转换为where语句,例如--where id>3则 只会列举id>3的条目。

像你目前为止所了解到的那样,sqlmap非常的灵活。你可以自动输出全部的数据,也可以自定义需要输出的列数和条目。

2.17 --dump-all

参数:--dump-all

作用:Dump all DBMS databases tables entries。列举所有数据库所有表中所有数据

使用:可同时加上参数--exclude-sysdbs排除系统数据库。

参数:--search

作用:Search column(s), table(s) and/or database name(s)。用来搜索特定的数据库名称,在所有数据库中搜索特定表,在数据表中搜索特定的列。

使用:

需要和下面三个选项一起使用:

参数 作用
-C COL DBMS database table column(s) to enumerate。 后面跟着用逗号分割的列名,将会在所有数据库表中搜索指定的列名
-T TBL DBMS database table(s) to enumerate。 后面跟着用逗号分割的表名,将会在所有数据库中搜索指定的表名
-D DB DBMS database to enumerate。 后面跟着用逗号分割的数据库名,将会在所有数据库中搜索指定的库名
相关推荐
传而习乎7 分钟前
Linux:CentOS 7 解压 7zip 压缩的文件
linux·运维·centos
我们的五年16 分钟前
【Linux课程学习】:进程程序替换,execl,execv,execlp,execvp,execve,execle,execvpe函数
linux·c++·学习
IT果果日记38 分钟前
ubuntu 安装 conda
linux·ubuntu·conda
Python私教40 分钟前
ubuntu搭建k8s环境详细教程
linux·ubuntu·kubernetes
羑悻的小杀马特1 小时前
环境变量简介
linux
小陈phd1 小时前
Vscode LinuxC++环境配置
linux·c++·vscode
是阿建吖!1 小时前
【Linux】进程状态
linux·运维
明明跟你说过2 小时前
Linux中的【tcpdump】:深入介绍与实战使用
linux·运维·测试工具·tcpdump
Komorebi.py3 小时前
【Linux】-学习笔记05
linux·笔记·学习
Mr_Xuhhh3 小时前
重生之我在学环境变量
linux·运维·服务器·前端·chrome·算法