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 -h2.
-hh- 显示高级帮助信息并退出
用法:
python sqlmap.py -hh3.
--version- 显示程序版本信息并退出
python sqlmap.py --version4.
-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-readreg-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