首页 小组 文章 相册 留言本 用户 搜索 我的社区 在线学堂 商城 购物车 支付钱包

[分享]sqlmap命令手册

2025-04-08 23:20:15
0
75

SQLmap 命令手册展开目录

注意,该手册适用于 1.41 版本以下的 SQLmap
本文所有内容均从 SQLmap 官方 wiki 翻译完成,并对各个参数进行了测试,保证可以正确使用

What is SQLmap?展开目录What can do?展开目录

  • 判断可注入的参数
  • 判断使用哪种技术注入
  • 识别数据库
  • 根据选择读取数据库中的数据

    5 种注入模式
  • 基于 bool 的盲注
  • 基于时间的盲注
  • 基于报错的注入
  • 联合查询注入
  • 堆叠查询注入

    支持的数据库
  • MySQL
  • Oracle
  • PostgreSQL
  • MSSQL
  • MS Access
  • IBM DB2
  • SQLlite
  • Firebird
  • Sybase
  • SAP MaxDB
  • HSQLDB
  • Informix

    基础命令
  • python sqlmap.py -参数1 目标 -参数2

    帮助参数1. -h 或 --help
  • 显示基本帮助信息并推出
  • 用法:python sqlmap.py -h

    2. -hh
  • 显示高级帮助信息并退出
  • 用法:python sqlmap.py -hh

    3. --version
  • 显示程序版本信息并退出
  • python sqlmap.py --version

    4. -v
  • 观察 SQLmap 如何进行注入以及读取数据的
  • 用法:python sqlmap.py -v 等级(默认为1)
  • 等级 (共 7 级)

    • 0 只显示 python 错误以及严重的信息
    • 1 同时显示基本信息和警告信息
    • 2 同时显示 debug 信息
    • 3 同时显示注入的 payload
    • 4 同时显示 HTTP 请求
    • 5 同时显示 HTTP 响应头
    • 6 同时显示 HTTP 相应页面
    必须参数

    至少存在一个必须参数

    -u 或 --url
  • 指定 URL
  • 用法:python sqlmap.py -u http://127.0.0.1/?id=1

    -d
  • 直接连接数据库
  • 用法:python sqlmap.py -d "mysql://user:password@ip:port/数据库名称"

    -l
  • 从 Burp 或者 WebScarab 代理日志文件中来解析目标
  • 用法:python sqlmap.py -l 日志文件

    -m
  • 从文件中批量加载 URL,一行一个 URL
  • 用法:python sqlmap.py -m 文件

    -r
  • 从文本文件中获取 HTTP 请求,常用于 POST 提交,以及设置 UA、Cookie 等
  • 用法:python sqlmap.py -r 文件
  • 文本文件例子:

    • POST /abc
    • Host: 127.0.0.1
    • User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:81.0)

    • id=1
    -g
  • 测试注入 Google 搜索结果中的 GET 参数 (前 100 个结果)
  • 用法:python sqlmap.py -g "inurl:\".php?id=1\""

    -c
  • 从配置 ini 文件中加载选项
  • 用法:python sqlmap.py -c ini配置文件
  • 具体配置可以参照 SQLmap 文件夹中的 SQLmap.conf

    请求参数

    这些选项可用于指定如何连接到目标 URL

    -A 或者 --user-agent
  • 指定 URL 的 UA
  • 当 -level 设置为 3 或者更高时,SQLmap 会检测 UA 是否存在注入
  • 用法:python sqlmap.py 必须参数 -A UA

    -H 或者 --headers
  • 指定额外的 HTTP 头
  • 用法:python sqlmap.py 必须参数 -H HEADER

    --method
  • 强制使用给定的 HTTP 方法
  • 用法:python sqlmap.py 必须参数 --method=方法
  • 一般 HTTP 方法有:

    • GET 请求指定的页面信息,并返回实体主体
    • HEAD 类似于 GET 请求,只不过返回的相应中没有具体的内容,用于获取报头
    • POST 向指定资源提交数据进行处理请求 (例如提交表单或者上传文件)。数据被包含在请求体中。POST 请求可能会导致新的资源的建立和 / 或已有资源的修改。
    • PUT 从客户端向服务器传送的数据取代指定的文档的内容
    • DELETE 请求服务器删除指定的页面
    • CONNECT HTTP/1.1 协议中预留给能够将连接改为管道方式的代理服务器。
    • OPTIONS 允许客户端查看服务器的性能
    • TRACE 回显服务器收到的请求,主要用于测试或者诊断
    • PATCH 是对 PUT 方法的补充,用来对已知资源进行局部更细。
    --data
  • 通过 POST 发送数据参数
  • 用法:python sqlmap.py 必须参数 --data=数据参数

    --param-del
  • 指定发送数据中拆分参数值的字符
  • 用法:python sqlmap.py 必须参数 --param-del=字符
  • 例:python sqlmap.py -u "http://192.168.56.102:8080/user.php" --data="id=0;name=werner" --param-del=";"

    --cookie
  • 指定 cookie
  • 当 -level 设置为 2 或者更高时,SQLmap 会检测 cookie 是否存在注入
  • 用法:python sqlmap.py 必须参数 --cookie="dasfc23cdf4ffdsda1"

    --cookie-del
  • 指定 cookie 中拆分参数值的字符 (与 --param-del 类似)
  • 用法:python sqlmap.py 必须参数 --cookie-del="&"

    --load-cookies
  • 从文件中载入 Netscape 或 wget 格式的 cookie
  • 用法:python sqlmap.py 必须参数 --load-cookies=文件

    --drop-set-cookie
  • 忽略响应头中设置的 cookie
  • 用法:python sqlmap.py 必须参数 --drop-set-cookie

    --random-agent
  • 使用随机的 UA
  • 用法:python sqlmap.py 必须参数 --random-agent

    --host
  • 指定 HTTP 头中的 Host 值
  • 当 -level 设置为 5 或者更高时,SQLmap 会检测 Host 是否存在注入
  • 用法:python sqlmap.py 必须参数 --host="HOST指定值"

    --referer
  • 指定 HTTP 请求头中的 referer,SQLmap 发送的 HTTP 请求默认无 referer
  • 当 -level 设置为 3 或者更高时,SQLmap 会检测 referer 是否存在注入
  • 用法:python sqlmap.py 必须参数 --referer REFERER

    --auth-type
  • 指定认证方式
  • 支持以下身份认证方式

    • Basic
    • Digest
    • NTLM
    • PKI
  • 用法:python sqlmap.py 必须参数 --auth-type Basic 其他auth认证参数

    --auth-cred
  • 指定认证的用户名密码
  • 用法:python sqlmap.py 必须参数 --auth-type Basic --auth-cred "用户名:密码"

    --auth-file
  • 指定 HTTP 身份认证的 PEM 证书、私钥文件
  • 用法:python sqlmap.py 必须参数 --auth-file="文件或链接"

    --ignore-code
  • 忽略 HTTP 错误代码
  • 用法:python sqlmap.py 必须参数 --ignore-错误代码

    --ignore-proxy
  • 忽略系统默认的代理
  • 用法:python sqlmap.py 必须参数 --ignore-proxy

    --ignore-redirects
  • 忽略重定向
  • 用法:python sqlmap.py 必须参数 --ignore-redirects

    --ignore-timeouts
  • 忽略超时
  • 用法:python sqlmap.py 必须参数 --ignore-timeouts

    --proxy
  • 设置一个 HTTP 代理连接目标 URL
  • 用法:python sqlmap.py 必须参数 --proxy="http\https\socks4\socks5://address:port"

    --proxy-cred
  • 为代理设置认证信息
  • 用法:python sqlmap.py 必须参数 --proxy="http\https\socks4\sockes5://address:port" --proxy-cred=用户名:密码

    --proxy-file
  • 从文件加载代理
  • 用法:python sqlmap.py 必须参数 --proxy-file=文件

    --tor
  • 使用 tor 网络
  • 用法:python sqlmap.py 必须参数 --tor 其他tor参数

    --tor-port
  • 指定 tor 的端口
  • 用法:python sqlmap.py 必须参数 --tor --tor-port 端口

    --tor-type
  • 设置 tor 的类型

    • HTTP
    • SOCKS4
    • SOCKS5 (默认)
  • 用法:python sqlmap.py 必须参数 --tor --tor-type=SOCKS5

    --check-tor
  • 检查是否使用了 tor
  • 用法:python sqlmap.py 必须参数 --tor 其他tor参数 --check-tor
  • 此参数会保证所有流量走 tor,若 tor 代理失效,SQLmap 会发出警告并退出

    --delay
  • 为 HTTP 请求之间设置延迟,以秒为单位,默认无延迟
  • 用法:python sqlmap.py 必须参数 --delay=1

    --timeout
  • 设置超时等待时间,以秒为单位,默认 30 秒超时
  • 用法:python sqlmap.py 必须参数 --timeout 20

    --retries
  • 超时重试次数,默认为 3 次
  • 用法:python sqlmap.py 必须参数 --retries 4

    --randomize
  • 随机生成 HTTP 请求中参数的值,值的类型和长度依照于原始值
  • 用法:python sqlmap.py 必须参数 --randomize="HTTP参数"

    --safe-url
  • 每隔一段时间访问一个安全 \ 不错误的连接
  • 用法:python sqlmap.py 必须参数 --safe-url="安全\不错误的URL" 其他safe参数

    --safe-post
  • 访问安全 \ 不错误连接时使用指定 POST 数据
  • 用法:python sqlmap.py 必须参数 --safe-post POST数据

    --safe-req
  • 从文件加载安全 \ 不错误的 HTTP 请求
  • 用法:python sqlmap.py 必须参数 --safe-req 文件

    --safe-freq
  • 每隔几次测试请求之后都会访问安全 URL
  • 用法:python sqlmap.py 必须参数 --safe-url="安全\不错误的URL" --safe-freq=3
  • 使用 safe-url 必须使用 safe-freq

    --skip-urlencode
  • 对 payload 跳过 URL 编码
  • 用法:python sqlmap.py 必须参数 --skip-urlencode
  • 因为有些网站不遵守 RFC 标准编码,所以需要跳过 URL 编码

    --csrf-token
  • 指定 csrf-token 的值
  • 用法:python sqlmap.py 必须参数 --csrf-token=token参数

    --csrf-url
  • 指定 csrf-token 的 url 值
  • 用法:python sqlmap.py 必须参数 --csrf-url=URL参数

    --force-ssl
  • 强制使用 SSL\HTTPS
  • 用法:python sqlmap.py 必须参数 --force-ssl

    --hpp
  • 使用 HTTP 参数污染
  • 用法:python sqlmap.py 必须参数 --hpp
  • HTTP 参数污染是绕过 WAF/IPS/IDS 的一种技术,针对 ASP/ISS/(ASP.NET/ISS) 平台尤其有效

    --eval
  • 在每次请求前执行指定 python 代码
  • 用法:python sqlmap.py 必须参数 --eval="python代码"
  • 某些时候,需要根据某个参数的变化来修改另一个参数才能形成正常请求,所以需要用 python 代码根据该参数来计算出另一个参数的值

    优化参数

    这些选项可以用来优化 SQLmap 的性能

    -o
  • 打开所有的优化开关 (即 --predict-output,--keep-alive,--null-connection)
  • 用法:python sqlmap.py 必须参数 -o

    --predict-output
  • 预测常见的查询输出
  • 用法:python sqlmap.py 必须参数 --predict-output
  • 预设一个表,然后提交给服务器,根据返回值判断,类似暴力破解,但是每次破解都会缩小范围。

    --keep-alive
  • 保持 HTTP (S) 长连接
  • 用法:python sqlmap.py 必须参数 --kepp-alive
  • 性能好,避免重复建立链接,占用服务器资源。
  • 与 --proxy 不兼容

    --null-connection
  • 只检索 HTTP 相应页大的长度,不检索实际内容 (常用于盲注)
  • python sqlmap.py 必须参数 --null-connection

    --threads
  • 多线程,默认为 1,最大为 10
  • ** 与 --predict-output 不兼容
  • 用法:python sqlmap.py 必须参数 --threads=3

    注入参数

    这些可选参数用于指定要测试的参数,提供定制的注入 payload 和可选的篡改脚本

    -p
  • 给出需要测试的参数
  • 用法:python sqlmap.py 必须参数 -p "user-agent"

    --skip
  • 排除指定参数
  • 用法:python sqlmap.py 必须参数 --skip="user-agent"

    --skip-static
  • 跳过非动态参数进行测试,即不检测固定参数
  • 用法:python sqlmap.py 必须参数 --skip-static

    --param-exclude
  • 使用正则表达式排除某些参数
  • 用法:python sqlmap.py 必须参数 --param-exclude=正则

    --dbms
  • 指定目标数据库类型、版本
  • 用法:python sqlmap.py 必须参数 --dbms="mysql<版本>"

    --dbms-cred
  • 指定数据库的用户名密码
  • 用法:python sqlmap.py 必须参数 --dbms-cred="用户名:密码"

    --os
  • 指定目标数据库的操作系统
  • 用法:python sqlmap.py 必须参数 --os="Windows"

    --invalid-bignum
  • 使用大数字使参数失效,通常 SQLmap 会使用负数使参数失效
  • 用法:python sqlmap.py 必须参数 --invalid-bignum

    --invalid-logical
  • 使用逻辑使参数失效,如 id=1 and 1=2
  • 用法:python sqlmap.py 必须参数 --invalid-logical

    --invalid-string
  • 使用随机字符使参数失效
  • 用法:python sqlmap.py 必须参数 --invalid-string

    --no-cast
  • 在提取数据库数据时,将所有结果转换为字符串,并且空格替换 NULL 结果 (老版本 MySql 需要使用此参数)
  • 用法:python sqlmap.py 必须参数 --no-cast

    --no-escape
  • 不使用 char 替换字符串功能
  • 出于混淆和避免出错的目的,如果 payload 使用单引号界定字符串,SQLmap 使用 char () 编码逃避的方法替换字符串
  • 用法:python sqlmap.py 必须参数 --no-escape

    --prefix
  • 指定 payload 的闭合语句的前缀
  • 用法:python sqlmp.py 必须参数 --prefix="前缀"

    --sufix
  • 指定 payload 的闭合语句的后缀
  • 用法:python sqlmap.py 必须参数 --sufix="后缀"

    --tamper
  • 使用混淆脚本,用来绕过 WAF/IPS/ 应用过滤层
  • 用法:python sqlmap.py 必须参数 --tamper="脚本文件"

    探测参数

    自定义在 SQL 盲注时如何解析和比较 HTTP 相应页面的内容

    --level
  • 指定检测等级 (1~5,默认为 1)
  • 可以在 sqlmap/xml/payloads 文件内可以看到各个 level 发送的 payload
  • 各个 level 的检测数据

  • 默认
  • cookie
  • user-agent
  • referer
  • host
  • 用法:python sqlmap.py 必须参数 --level=3

    --risk
  • 指定风险等级 (1~3,默认为 1),升高风险等级会增加数据被篡改的风险
  • 各个风险等级检测类型

  • 默认
  • 基于时间的 SQL 注入
  • 基于 or 的 SQL 注入
  • 用法:python sqlmap.py 必须参数 --risk=2

    --string
  • 在基于 bool 注入时,指定判断真假的字符串 (常用于返回页面不固定时)
  • 用法:python sqlmap.py 必须参数 --string="字符串"

    --not-string
  • 在基于 bool 注入时,指定没出现的字符串判断真假,与 --string 相反
  • 用法:python sqlmap.py 必须参数 --not-string="字符串"

    --regexp
  • 在基于 bool 注入时,根据正则表达式来判断真假,与 --not-string 和 --string 可以连用
  • 用法:python sqlmap.py 必须参数 --regexp="正则表达式"

    --code
  • 在基于 bool 注入时,通过指定 HTTP 返回码来判断真假
  • 用法:python sqlmap.py 必须参数 --code=200

    --text-only
  • 在 bool 注入时,通过文本内容判断真假
  • 用法:python sqlmap.py 必须参数 --text-only

    --titles
  • 在 bool 注入时,通过标题判断真假
  • 用法:python sqlmap.py 必须参数 --titles

    技巧参数

    这些参数可以用来调整 SQL 注入的测试技术

    --technique
  • 指定使用的 SQL 注入技术,默认为 BEUSTQ
  • 指定的技术如下:

    • B:bool 盲注
    • E:报错注入
    • U:联合查询注入
    • S:堆叠注入
    • T:时间盲注
    • Q:内联查询注入
  • 用法:python sqlmap.py 必须参数 --technique=BU

    --time-sec
  • 在时间盲注中,指定判断的时间,单位为秒,默认为 5
  • 用法:python sqlmap.py 必要参数 --time-sec=3

    --union-cols
  • 联合注入的尝试列数,随 level 增加最多支持 50 列,默认查询 1-10 列
  • 用法:python sqlmap.py 必要参数 --time-cols 5-7

    --union-char
  • 在联合注入中,默认使用的占列的值是 NULL,但是有时候 NULL 会失效,所以需要手动指定一个其他的占列值。
  • 用法:python sqlmap.py 必要参数 --union-char=1

    --union-from
  • 在有些数据库中,必须指定一个有效且可访问的表,否则联合查询就会失败,所以必须使用该参数指定一个表
  • 用法:python sqlmap.py 必须参数 --union-from=表名

    --dns-domain
  • 如果控制了一台 DNS 服务器,则可以使用该命令做 DNS 泄露攻击,通过攻击,可以在 DNS 的访问日志里得到查询的数据
  • 用法:python sqlmap.py 必须参数 --dns-domain
  • 注意!DBMS 中需要有可用的,能直接或间接引发 DNS 解析过程的程序,即用到 UNC1,其中引发 DNS 解析过程的函数有:

    • MSSQL

      • master..xp_dirtree (用于获取所有文件夹的列表和给定文件内部的子文件夹)
      • master..xp_fileexit (用于确定一个特定的文件是否存在于硬盘)
      • master..xp_subdirs (用于得到给定的文件夹内的文件夹列表)
    • Oracle

      • GET_HOST_ADDRESS (用于检索特定主机的 IP)
      • UTL_HTTP.REQUEST (从给定的地址检索到第 1~2000 字节的数据)
    • MySql

      • load_file (读取文件内容并将其作为字符串返回)
    • PostgreSQL

      • COPY (用于在文件系统的文件和表之间拷贝数据)
    --second-url
  • 搜索二阶相应的结果页面的 URL,即在一个页面注入,在另外一个页面显示,适合 GET 提交,POST 提交需要下一个参数
  • 用法:python sqlmap.py 必须参数 --second-url="另一个页面地址"

    --second-req
  • 与上一个相同,只是从文件加载 HTTP 请求
  • 用法:python sqlmap.py 必须参数 --second-req="请求的文件地址"

    指纹参数-f 或 --fingerprint
  • 获取更广泛的 DBMS 操作系统、架构、补丁等信息
  • 用法:python sqlmap.py 必须参数 -f

    枚举参数

    下列这些选项可以用于枚举数据库的系统信息、表的结构和数据,此外还可以执行自定义的 SQL 语句

    -a 或 --all
  • 查找所有的信息,即枚举中所有的信息
  • 用法:python sqlmap.py 必须参数 -a

    -b 或 --banner
  • 查询数据库的标识,即数据库类型与版本
  • 用法:python sqlmap.py 必须参数 -b

    --current-user
  • 查询数据库的当前用户
  • 用法:python sqlmap.py 必须参数 --current-user

    --current-db
  • 查询数据库中当前使用的数据库
  • 用法:python sqlmap.py 必须参数 --current-db

    --hostname
  • 查询数据库中当前的主机名
  • 用法:python sqlmap.py 必须参数 --hostname

    --is-dba
  • 检测当前的数据库用户是否为 DBA (即数据库管理员)
  • 用法:python sqlmap.py 必须参数 --is-dba

    --users
  • 枚举所有用户
  • 用法:python sqlmap.py 必须参数 --users

    --passwords
  • 枚举所有用户名密码的哈希
  • 用法:python sqlmap.py 必须参数 --passwords

    --privileges
  • 枚举所有数据库用户的权限
  • 用法:python sqlmap.py 必须参数 --privileges
  • 枚举某一数据库用户权限,用法:python sqlmap.py 必须参数 --privileges -U username
  • 枚举数据库当前用户权限,用法:python sqlmap.py 必须参数 --privileges -CU
  • 如果是 MSSQL,则只会列出用户是否为管理员而不是用户的具体权限

    --roles
  • 枚举数据库中的用户角色
  • 只要在 Oracle 数据库中可以用,其余数据库返回 --privileges 的数据
  • 用法:python sqlmap.py 必须参数 --roles
  • 其余用法同 --privileges

    --dbs
  • 枚举服务器中所有的数据库
  • 用法:python sqlmap.py 必须参数 --dbs

    --tables
  • 枚举数据库中的所有表名
  • 用法:python sqlmap.py 必须参数 --tables

    --columns
  • 枚举数据库中的所有列名
  • 用法:python sqlmap.py 必须参数 --columns

    --schema
  • 查询数据库架构,即每个列的类型,如:id 是 int 类型,name 是 varchar (255) 类型
  • 用法:python sqlmap.py 必须参数 --schema

    --count
  • 枚举每个表所包含的数据量
  • 用法:python sqlmap.py 必须参数 --count

    --dump
  • 查询指定范围的全部数据
  • 用法:python sqlmap.py 必须参数 --dump 其他参数
  • 该处的其他参数通常指 -D、-T、-C、-X、-U、--start、--stop、first、--last、--pivot-column、--where,这些参数均在后面有相应介绍

    --dump-all
  • 枚举数据库中全部数据
  • 用法:python sqlmap.py 必须参数 --dump-all

    --search
  • 搜索数据库、表、列的名称
  • 用法:python sqlmap.py 必须参数 --search 其他参数
  • 其他参数为 -C、-T、-D,这些参数均在后面有相应介绍

    --comments
  • 搜索数据库的备份
  • 用法:python sqlmap.py 必须参数 --comments

    -D
  • 指定枚举的数据库名
  • 用法:python sqlmap.py 必须参数 -D 数据库名

    -T
  • 指定枚举的表名
  • 用法:pyton sqlmap.py 必须参数 -T 表名
  • 通常情况下需先指定数据库

    -C
  • 指定枚举的列名
  • 用法:python sqlmap.py 必须参数 -C 列名
  • 通常情况下需先指定数据库和表名

    -X
  • 不枚举数据库中的某一列
  • 用法:python sqlmap.py 必须参数 -X 标识符
  • 如图:

    • 未使用 -X
    • 使用 -X
    -U
  • 指定用户名,常和 --privileges 一起使用
  • 用法:python sqlmap.py 必须参数 --privileges -U 指定的用户名
  • 其中,使用 -CU 表示当前账户

    --exclude-sysdbs
  • 与 -X 类似,此为排除某个数据库
  • 用法:python sqlmap.py 必须参数 --exclude-sysdbs 数据库名

    --pivot-colum
  • 做数据透视用的,估计平时也很少用的上。因为可能自动选择的列不适合做数据透视,所以可以使用该参数强制指定一列。
  • 用的:python sqlmap.py 必须参数 --pivot-cloum

    --where
  • 使用 -dump 下载数据时,可以使用该参数限制条件
  • 用法:python sqlmap.py 必须参数 --where=限制条件

    --start
  • 设置一个起始位置,在下载表时,从第几行开始
  • 用法:python sqlmap.py 必须参数 --start=3

    -stop
  • 设置一个结束位置,作用同上
  • 用法:python sqlmap.py 必须参数 --stop=4

    --first 和 --last
  • 此参数仅使用 SQL 盲注
  • 根据官方的说法时可以将某一列的字符转储到另一列,但是根据我的尝试并没有成功。
  • 用法:python sqlmap.py 必须参数 --first=2 --last=4

    --sql-query
  • 执行 SQL 语句
  • 用法:python sqlmap.py 必须参数 --sql-query=SQL语句

    --sql-shell
  • 执行 SQL 的 shell
  • 用法:python sqlmap.py 必须参数 --sql-shell=shell语句

    --sql-file
  • 从给定的文件中读取 SQL 语句来执行
  • 用法:python sqlmap.py 必须参数 --sql-file=文件目录

    暴力破解参数

    下列选项可以用于暴力破解

    --common-tables
  • 检查记录信息的公共表。
  • 用法:python sqlmap.py 必须参数 --common-tables
  • 在以下这些情况中,不能使用 -tables 检索数据库的列名,需要使用该参数:

    • MySQL 版本小于 5.0
    • 数据库是 Access
    • 会话用户对数据库的系统表没有读取权限

      --common-columns
  • 检查公共的列。
  • 用法:pyhton sqlmap.py 必须参数 --common-columns
  • 在以下这些情况中,不能使用 -columns 检索数据库的列名,需要使用该参数:

    • MySQL 版本小于 5.0
    • 数据库是 Access
    • 会话用户对数据库的系统表没有读取权限

      自定义函数注入参数

      这些选项可以创建自定义的函数用来注入

      --udf-inject
  • 通过编译 MySQL、PostgreSQL 的共享库、DLL 和共享对象来注入自定义函数 (UDFs)
  • 用法:python sqlmap.py 必须参数 --udf-inject=文件路径
  • 用法:python sqlmap.py 必须参数 --shared-lib=文件路径
  • 仅适用于 MySQL 和 PostgreSQL
  • 详情参见链接

    文件系统访问参数

    这些选项可用于访问数据库系统中的文件

    --file-read
  • 从数据库系统中读取文件
  • 用法:python sqlmap.py 必须参数 --file-read=文件路径

    --file-write
  • 对数据库系统写入文件
  • 用法:python sqlmap.py 必须参数 --file-write=文件路径

    --file-dest
  • 写入文件到数据库系统的绝对路径
  • 用法:python sqlmap.py 必须参数 --file-dest=文件路径

    操作系统访问参数

    这些选项可以用于访问后端数据库管理的操作系统

    --os-cmd
  • 执行系统命令
  • 用法:python sqlmap.py 必须参数 --os-cmd=命令

    --os-shell
  • 创建一个 shell
  • 用法:python sqlmap.py 必须参数 --os-shell

    --os-pwn
  • 可以用来反弹 msf 下的 shell 和 vnc
  • 用法:python sqlmap.py 必须参数 --os-pwn

    --os-smbrelay
  • 获取 OOB shell,反弹 msf 下的 shell 和 vnc
  • 用法:python sqlmap.py 必须参数 --os-smbrelay

    --os-bof
  • 利用缓冲区漏洞
  • 用法:python sqlmap.py 必须参数 --os-bof

    --priv-esc
  • 自动提权
  • 用法:python sqlmap.py 必须参数 --priv-esc

    --msf-path
  • 输入本地的 msf 路径
  • 用法:python sqlmap.py 必须参数 --msf-path=本地msf路径

    --tmp-path
  • 输入远程临时文件目录的绝对路径。
  • 用法:python sqlmap.py 必须参数 --tmp-path=临时文件绝对路径

    Windows 注册表访问参数

    这些选项可以用于访问使用 Windows 系统的数据库中 Windows 注册表
    前三个参数必须选择一个,后四个参数任选
    --reg-read
  • 读取 Windows 注册表
  • 用法:python sqlmap.py 必须参数 --reg-read

    reg-add
  • 写入一个 Windows 注册表
  • 用法:python sqlmap.py 必须参数 --reg-add

    --reg-del
  • 删除一个 Windows 注册表
  • 用法:python sqlmap.py 必须参数 --reg-del

    --reg-key
  • 表示 Windows 注册表的 key 值
  • 用法:python sqlmap.py 必须参数 前三个参数 --reg-key=key值

    --reg-value
  • 表示注册表值
  • 用法:python sqlmap.py 必须参数 前三个参数 --reg-value=值

    --reg-data
  • 表示注册表数据
  • 用法:python sqlmap.py 必须参数 前三个参数 --reg-data=数据

    --reg-type
  • 表示注册表类型
  • 用法:python sqlmap.py 必须参数 前三个参数 --reg-type=类型

    其他参数 1

    这些选项可以用于设置一些常规工作参数

    -s
  • 从一个.sqlite 文件中加载 session
  • 用法:python sqlmap.py 必须参数 -s SESSION文件

    -t
  • 将所有 HTTP 流量记录到文本文件中
  • 用法:python sqlmap.py 必须参数 -t 文本文件保存位置

    --answers
  • 设置预设答案
  • 用法:python sqlmap.py 必须参数 --answers=答案
  • 在执行 sqlmap 可能会多次询问选择,所以可以提前设置

    --base64
  • 设置包含 base64 数据编码的数据
  • 用法:python sqlmap.py 必须参数 --base64=需要base64编码的HTTP参数

    --batch
  • 永远使用默认设置,不询问用户
  • 用法:python sqlmap.py 必须参数 --batch

    --binary-fields
  • 如果表中具有储存的二进制值的列,可以使用该参数进行正确的处理,所有的这些字段将被检索,并用十六进制显示。
  • 用法:python sqlmap.py 必须参数 --binary-fields=使用二进制的列

    --check-internet
  • 在进行注入前,首先检测互联网是否可以访问
  • 用法:python sqlmap.py 必须参数 --check-internet

    --crawl
  • 从目标网址开始抓取网站的深度
  • 用法:python sqlmap.py 必须参数 --crawl=深度层数

    --crawl-exclude
  • 使用正则表达式排除不需要爬取的网页
  • 用法:python sqlmap.py 必须参数 --crawl-exclude=正则表达式

    --csv-del
  • 设置 CSV 格式的分隔符,默认使用逗号作为分隔符
  • 用法:python sqlmap.py 必须参数 --csv-del=","

    --charset
  • 设置盲注的字符集
  • 用法:python sqlmap.py 必须参数 --charset=字符集
  • 在基于布尔和时间的盲注 SQL 注入中,用户可以强制使用自定义字符集来加快数据检索过程。

    --dump-format
  • 设置转储数据格式,默认为 CSV,可选 HTML、SQLite
  • 用法:python sqlmap.py 必须参数 --dump-format=html或者sqlite或者csv

    --encoding
  • 设置编码,如:GBK 或者 utf-8
  • 用法:python sqlmap.py 必须参数 --encoding=GBK

    --eta
  • 显示每个输出的估计时间
  • 用法:python sqlmap.py 必须参数 --eta

    --flush-session
  • 刷新当前目标的 session
  • 用法:pyhton sqlmap.py 必须参数 --flush-session

    --forms
  • 解析在目标 URL 中存在的表单,通常这些表单在 HTML 中都是用 <form> 和 <input> 标记的
  • 用法:python sqlmap.py 必须参数 --forms

    --fresh-queries
  • 忽略储存在 session 中的查询结果,通过该参数,可以保持 session 保持不变。
  • 用法:python sqlmap.py 必须参数 --fresh-queries

    --har
  • 将所有的 HTTP 流量记录到一个 har 文件中
  • 用法:python sqlmap.py 必须参数 --har

    --hex
  • 在数据检索期间使用十六进制转换
  • 用法:python sqlmap.py 必须参数 --hex

    --output-dir
  • 自定义输出目录
  • 用法:pyhton sqlmap.py 必须参数 --output-dir=输出目录路径

    --parse-errors
  • 解析错误解析,并显示来自数据库的错误消息
  • 用法:python sqlmap.py 必须参数 --parse-errors

    --preprocess
  • 使用给定的脚本对请求数据进行预处理
  • 用法:python sqlmap.py 必须参数 --preprocess=脚本路径
  • 使用该参数可以在发送请求前对请求数据使用自定义脚本,例如将参数附加到 POST 请求中。

    --postprocess
  • 使用给定的脚本对响应数据进行预处理
  • 用法:python sqlmap.py 必须参数 --postprocess=脚本路径
  • 使用该参数可以在收到响应后对响应数据使用自定义脚本,例如将所有小写字符转换为大写

    --repair
  • 修复具有未知字符标记的项
  • 用法:python sqlmap.py 必须参数 --repair

    --save
  • 保存现在的选项到 ini 配置文件中
  • 用法:pyhton sqlmap.py 必须参数 --save=配置文件.conf
  • 可以使用 -c来读取这些 ini 配置文件

    --scope
  • 使用正则表达式从 burp 的日志中过滤所需要的主机
  • 用法:python sqlmap.py 必须参数 --scope="正则表达式"
  • 例如:

    • python sqlmap.py -l burp.log --scope="(www)?\.target\.(com|net|org)"

      --test-filter
  • 通过某些有效载荷或标题进行测试
  • 用法:python sqlmap.py 必须参数 --test-filter=有效载荷或标题
  • 使用包含某个关键词的 payload 进行检测

    --test-skip
  • 跳过某些有效载荷或标题进行测试
  • 用法:python sqlmap.py 必须参数 --test-skip=想跳过的有效载荷或标题

    --update
  • 升级 SQLmap
  • 用法:python sqlmap.py --update

    其他参数 2-z
  • 助记符,只要能确定唯一的参数,那么就可以缩写参数
  • 用法:python sqlmap.py 必须参数 -z "缩写参数"
  • 例子:python sqlmap.py -z "bat,randoma,ign,tec=BEU" -u "www.target.com/vuln.php?id=\1",其中,bat 指 --batch,randoma 指 random-agent,ign 指 ignore-proxy,tec-BEU 指 --technique=BEU

    --alert
  • 当发现 SQL 注入后,运行本机的 CMD 命令
  • 用法:python sqlmap.py 必须参数 --alert "命令"
  • 只在 Linux 环境下成功过

    --beep
  • 当发现 SQL 注入后,蜂鸣器报警
  • 用法:python sqlmap.py 必须参数 --beep

    --cleanup
  • 从 SQLmap 创建的临时表和自定义函数
  • 常用于测试结束后
  • 用法:python sqlmap.py 必须参数 --cleanup

    --dependencies
  • 检查缺少的 SQLmap 依赖的第三方库
  • 常用于检测 SQLmap 必须的第三方依赖 python 库
  • 用法:python sqlmap.py --dependencies

    --disable-coloring
  • 关闭彩色输出
  • 用法:python sqlmap.py --disable-coloring

    --gpage
  • 指定来自某一页码的 Google dork 结果,常与 -g一起使用
  • 用法:python sqlmap.py -g 参数 --gpage=12

    --identify-waf
  • 识别 WAF、IPS、IDS 等
  • 用法:python sqlmap.py 必须参数 --identity-waf

    --list-tampers
  • 列出所有本地绕 WAF 的规则
  • 用法:python sqlmap.py --list-tampers

    --mobile
  • 模拟智能手机的 UA
  • 用法:python sqlmap.py 必须参数 --mobile

    --offline
  • 在脱机模式下运行,只在当前或以前的数据,不会对服务端进行连接
  • 用法:python sqlmap.py 必须参数 --offline

    --purge
  • 安全删除 SQLmap 数据目录中的所有内容,即删除本地 SQLmap 测试的所有数据和历史记录
  • 用法:python sqlmap.py --purge
  • 安全删除意味着对该目录进行随机数据覆盖,破坏数据,防止恢复

    --skip-waf
  • 跳过 WAF、IPS、IDS 的扫描检测
  • 用法:pyhton sqlmap.py 必须参数 --skip-waf

    --smart
  • 如果只是为了找出批量检测中的 SQL 注入,使用该参数进行启发式扫描,只有让数据库报错的参数才会进一步测试,其余跳过
  • 常与 -m一起使用
  • 用法:python sqlmap.py -m 参数 --smart

    --sqlmap-shell
  • 使用该参数,可以打开一个交互式的 SQLmap SHELL,支持历史记录
  • 用法:python sqlmap.py --sqlmap-shell

    --tmp-dir
  • 更改本地临时文件储存目录
  • 用法:python sqlmap.py --tmp-dir=本地目录

    --web-root
  • 指定 Web 服务器的文档根目录
  • 用法:python sqlmap.py 必须参数 --web-root="根目录绝对路径"

    --wizard
  • 面向初学者的简单向导界面
  • 用法:python sqlmap.py --wizard
  • 该参数使用简单的工作流程,问题尽可能的少,只要输入了 URL,那么在工作流结束时,也会设置一个正确的 SQLmap 运行环境
  • UNC 只有 Windows 系统有 
  • 《SQLmap 命令手册》链接:https://xdym11235.com/archives/sqlmap.html
    具体版权规定详见侧栏版权说明页面
    评论
    意见反馈