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
具体版权规定详见侧栏版权说明页面
Hello world