Sqlmap工具内的各种参数的含义对照表
SQL注入类的相关文章:https://blog.youkuaiyun.com/counting123/article/details/155390012?fromshare=blogdetail&sharetype=blogdetail&sharerId=155390012&sharerefer=PC&sharesource=counting123&sharefrom=from_link
基础选项
| 选项 | 说明 |
|---|
| -h, --help | 显示基础帮助信息并退出 |
| -hh | 显示高级帮助信息并退出 |
| –version | 显示程序版本号并退出 |
| -v VERBOSE | 详细程度等级:0-6(默认 1) |
目标(Target)
至少需提供以下选项之一来定义测试目标
| 选项 | 说明 |
|---|
| -u URL, --url=URL | 目标 URL(例如:“http://www.site.com/vuln.php?id=1”) |
| -d DIRECT | 直接数据库连接字符串 |
| -l LOGFILE | 从 Burp 或 WebScarab 代理日志文件解析目标 |
| -m BULKFILE | 扫描文本文件中指定的多个目标 |
| -r REQUESTFILE | 从文件加载 HTTP 请求 |
| -g GOOGLEDORK | 将 Google 黑客语法结果作为目标 URL 处理 |
| -c CONFIGFILE | 从配置 INI 文件加载选项 |
请求(Request)
用于指定连接目标 URL 的方式
| 选项 | 说明 |
|---|
| -A AGENT, --user-agent=AGENT | HTTP User-Agent 头信息值 |
| -H HEADER, --header=HEADER | 额外的 HTTP 头(例如:“X-Forwarded-For: 127.0.0.1”) |
| –method=METHOD | 强制使用指定的 HTTP 方法(例如:PUT) |
| –data=DATA | 通过 POST 发送的数据字符串(例如:“id=1”) |
| –param-del=PDEL | 参数值的分隔字符(例如:&) |
| –cookie=COOKIE | HTTP Cookie 头信息值(例如:“PHPSESSID=a8d127e…”) |
| –cookie-del=CDEL | Cookie 值的分隔字符(例如:;) |
| –live-cookies=LCFILE | 用于加载最新值的实时 Cookie 文件 |
| –load-cookies=LCFILE | 加载 Netscape/wget 格式的 Cookie 文件 |
| –drop-set-cookie | 忽略响应中的 Set-Cookie 头 |
| –http1.0 | 使用 HTTP 1.0 版本(旧版本) |
| –http2 | 使用 HTTP 2 版本(实验性) |
| –mobile | 通过 HTTP User-Agent 头模拟智能手机 |
| –random-agent | 使用随机选择的 HTTP User-Agent 头值 |
| –host=HOST | HTTP Host 头信息值 |
| –referer=REFERER | HTTP Referer 头信息值 |
| –headers=HEADERS | 额外的 HTTP 头(例如:“Accept-Language: fr\nETag: 123”) |
| –auth-type=AUTHTYPE | HTTP 认证类型(Basic、Digest、Bearer 等) |
| –auth-cred=CREDS | HTTP 认证凭据(用户名:密码) |
| –auth-file=AFILE | HTTP 认证 PEM 证书 / 私钥文件 |
| –abort-code=ACODES | 遇到(问题性)HTTP 错误码时中止(例如:401) |
| –ignore-code=ICODES | 忽略(问题性)HTTP 错误码(例如:401) |
| –ignore-proxy | 忽略系统默认代理设置 |
| –ignore-redirects | 忽略重定向尝试 |
| –ignore-timeouts | 忽略连接超时 |
| –proxy=PROXY | 使用代理连接目标 URL |
| –proxy-cred=PCREDS | 代理认证凭据(用户名:密码) |
| –proxy-file=PFILE | 从文件加载代理列表 |
| –proxy-freq=PFREQ | 从指定代理列表切换代理前的请求次数 |
| –tor | 使用 Tor 匿名网络 |
| –tor-port=TORPORT | 设置非默认的 Tor 代理端口 |
| –tor-type=TORTYPE | 设置 Tor 代理类型(HTTP、SOCKS4 或默认 SOCKS5) |
| –check-tor | 检查 Tor 是否正确使用 |
| –delay=DELAY | 每次 HTTP 请求之间的延迟(秒) |
| –timeout=TIMEOUT | 连接超时前的等待时间(默认 30 秒) |
| –retries=RETRIES | 连接超时时的重试次数(默认 3 次) |
| –retry-on=RETRYON | 当内容匹配正则表达式时重试请求(例如:“drop”) |
| –randomize=RPARAM | 为指定参数随机更改值 |
| –safe-url=SAFEURL | 测试期间频繁访问的安全 URL |
| –safe-post=SAFEPOST | 发送到安全 URL 的 POST 数据 |
| –safe-req=SAFERFILE | 从文件加载安全 HTTP 请求 |
| –safe-freq=SAFEFREQ | 访问安全 URL 之间的常规请求次数 |
| –skip-urlencode | 跳过负载数据的 URL 编码 |
| –csrf-token=CSRFT | 用于存储反 CSRF 令牌的参数 |
| –csrf-url=CSRFURL | 用于提取反 CSRF 令牌的访问 URL |
| –csrf-method=CSRFM | 访问反 CSRF 令牌页面时使用的 HTTP 方法 |
| –csrf-data=CSRFD | 访问反 CSRF 令牌页面时发送的 POST 数据 |
| –csrf-retries=CSRFR | 反 CSRF 令牌获取的重试次数(默认 0 次) |
| –force-ssl | 强制使用 SSL/HTTPS |
| –chunked | 使用 HTTP 分块传输编码(POST)请求 |
| –hpp | 使用 HTTP 参数污染方法 |
| –eval=EVALCODE | 请求前执行指定的 Python 代码(例如:“import hashlib;id2=hashlib.md5 (id).hexdigest ()”) |
优化(Optimization)
用于优化 sqlmap 的性能
| 选项 | 说明 |
|---|
| -o | 开启所有优化开关 |
| –predict-output | 预测常见查询输出 |
| –keep-alive | 使用持久 HTTP (s) 连接 |
| –null-connection | 仅获取页面长度,不获取实际 HTTP 响应体 |
| –threads=THREADS | 最大并发 HTTP (s) 请求数(默认 1) |
注入(Injection)
用于指定测试参数、自定义注入负载及篡改脚本
| 选项 | 说明 |
|---|
| -p TESTPARAMETER | 可测试的参数 |
| –skip=SKIP | 跳过对指定参数的测试 |
| –skip-static | 跳过对非动态参数的测试 |
| –param-exclude=PEXCLUDE | 用于排除测试参数的正则表达式(例如:“ses”) |
| –param-filter=PFILTER | 按位置选择可测试参数(例如:“POST”) |
| –dbms=DBMS | 强制指定后端数据库管理系统(DBMS) |
| –dbms-cred=DBCREDS | DBMS 认证凭据(用户名:密码) |
| –os=OS | 强制指定后端 DBMS 的操作系统 |
| –invalid-bignum | 使用大数字使值无效 |
| –invalid-logical | 使用逻辑运算使值无效 |
| –invalid-string | 使用随机字符串使值无效 |
| –no-cast | 关闭负载转换机制 |
| –no-escape | 关闭字符串转义机制 |
| –prefix=PREFIX | 注入负载的前缀字符串 |
| –suffix=SUFFIX | 注入负载的后缀字符串 |
| –tamper=TAMPER | 使用指定脚本篡改注入数据 |
检测(Detection)
用于自定义检测阶段的配置
| 选项 | 说明 |
|---|
| –level=LEVEL | 测试级别(1-5,默认 1) |
| –risk=RISK | 测试风险等级(1-3,默认 1) |
| –string=STRING | 查询结果为 True 时匹配的字符串 |
| –not-string=NOTSTRING | 查询结果为 False 时匹配的字符串 |
| –regexp=REGEXP | 查询结果为 True 时匹配的正则表达式 |
| –code=CODE | 查询结果为 True 时匹配的 HTTP 状态码 |
| –smart | 仅在启发式检测为阳性时执行彻底测试 |
| –text-only | 仅基于文本内容比较页面 |
| –titles | 仅基于标题比较页面 |
技术(Techniques)
用于调整特定 SQL 注入技术的测试
| 选项 | 说明 |
|---|
| –technique=TECH | 要使用的 SQL 注入技术(默认 “BEUSTQ”) |
| –time-sec=TIMESEC | DBMS 响应延迟时间(默认 5 秒) |
| –disable-stats | 禁用检测延迟的统计模型 |
| –union-cols=UCOLS | 测试 UNION 查询注入的列范围 |
| –union-char=UCHAR | 用于暴力破解列数的字符 |
| –union-from=UFROM | UNION 查询注入中 FROM 部分使用的表 |
| –union-values=UVALS | UNION 查询注入中使用的列值 |
| –dns-domain=DNSDOMAIN | DNS 数据外渗攻击使用的域名 |
| –second-url=SECURL | 用于查找二阶响应的结果页面 URL |
| –second-req=SECRFILE | 从文件加载二阶 HTTP 请求 |
指纹识别(Fingerprint)
| 选项 | 说明 |
|---|
| -f, --fingerprint | 执行详细的 DBMS 版本指纹识别 |
枚举(Enumeration)
用于枚举数据库信息、结构及数据
| 选项 | 说明 |
|---|
| -a, --all | 获取所有信息 |
| -b, --banner | 获取 DBMS 标识信息 |
| –current-user | 获取 DBMS 当前用户 |
| –current-db | 获取 DBMS 当前数据库 |
| –hostname | 获取 DBMS 服务器主机名 |
| –is-dba | 检测 DBMS 当前用户是否为 DBA |
| –users | 枚举 DBMS 用户 |
| –passwords | 枚举 DBMS 用户密码哈希 |
| –privileges | 枚举 DBMS 用户权限 |
| –roles | 枚举 DBMS 用户角色 |
| –dbs | 枚举 DBMS 数据库 |
| –tables | 枚举 DBMS 数据库表 |
| –columns | 枚举 DBMS 数据库表列 |
| –schema | 枚举 DBMS 模式 |
| –count | 获取表的条目数量 |
| –dump | 导出 DBMS 数据库表条目 |
| –dump-all | 导出所有 DBMS 数据库表条目 |
| –search | 搜索列、表和 / 或数据库名称 |
| –comments | 枚举期间检查 DBMS 注释 |
| –statements | 获取 DBMS 上正在执行的 SQL 语句 |
| -D DB | 要枚举的 DBMS 数据库 |
| -T TBL | 要枚举的 DBMS 数据库表 |
| -C COL | 要枚举的 DBMS 数据库表列 |
| -X EXCLUDE | 不枚举的 DBMS 数据库标识符 |
| -U USER | 要枚举的 DBMS 用户 |
| –exclude-sysdbs | 枚举表时排除 DBMS 系统数据库 |
| –pivot-column=PCOL | 透视列名称 |
| –where=DUMPWHERE | 表导出时使用的 WHERE 条件 |
| –start=LIMITSTART | 要获取的第一个表导出条目 |
| –stop=LIMITSTOP | 要获取的最后一个表导出条目 |
| –first=FIRSTCHAR | 要获取的查询输出首字符 |
| –last=LASTCHAR | 要获取的查询输出尾字符 |
| –sql-query=SQLQ | 要执行的 SQL 语句 |
| –sql-shell | 交互式 SQL shell 提示符 |
| –sql-file=SQLFILE | 从指定文件执行 SQL 语句 |
暴力破解(Brute force)
用于执行暴力破解检查
| 选项 | 说明 |
|---|
| –common-tables | 检查常见表是否存在 |
| –common-columns | 检查常见列是否存在 |
| –common-files | 检查常见文件是否存在 |
用户自定义函数注入(User-defined function injection)
用于创建自定义用户定义函数
| 选项 | 说明 |
|---|
| –udf-inject | 注入自定义用户定义函数 |
| –shared-lib=SHLIB | 共享库的本地路径 |
文件系统访问(File system access)
用于访问数据库底层文件系统
| 选项 | 说明 |
|---|
| –file-read=FILE | 从后端 DBMS 文件系统读取文件 |
| –file-write=FILE | 将本地文件写入后端 DBMS 文件系统 |
| –file-dest=FILE | 后端 DBMS 写入文件的绝对路径 |
操作系统访问(Operating system access)
用于访问数据库底层操作系统
| 选项 | 说明 |
|---|
| –os-cmd=OSCMD | 执行操作系统命令 |
| –os-shell | 交互式操作系统 shell 提示符 |
| –os-pwn | OOB(带外)shell、Meterpreter 或 VNC 提示符 |
| –os-smbrelay | 一键获取 OOB shell、Meterpreter 或 VNC |
| –os-bof | 存储过程缓冲区溢出利用 |
| –priv-esc | 数据库进程用户权限提升 |
| –msf-path=MSFPATH | Metasploit Framework 的本地安装路径 |
| –tmp-path=TMPPATH | 临时文件的远程绝对路径 |
Windows 注册表访问(Windows registry access)
用于访问 Windows 系统注册表
| 选项 | 说明 |
|---|
| –reg-read | 读取 Windows 注册表键值 |
| –reg-add | 写入 Windows 注册表键值数据 |
| –reg-del | 删除 Windows 注册表键值 |
| –reg-key=REGKEY | Windows 注册表键 |
| –reg-value=REGVAL | Windows 注册表键值 |
| –reg-data=REGDATA | Windows 注册表键值数据 |
| –reg-type=REGTYPE | Windows 注册表键值类型 |
通用(General)
用于设置通用工作参数
| 选项 | 说明 |
|---|
| -s SESSIONFILE | 从存储的(.sqlite)文件加载会话 |
| -t TRAFFICFILE | 将所有 HTTP 流量记录到文本文件 |
| –abort-on-empty | 结果为空时中止数据获取 |
| –answers=ANSWERS | 设置预定义答案(例如:“quit=N,follow=N”) |
| –base64=BASE64P | 包含 Base64 编码数据的参数 |
| –base64-safe | 使用 URL 和文件名安全的 Base64 编码(RFC 4648) |
| –batch | 不询问用户输入,使用默认行为 |
| –binary-fields=BFIELDS | 包含二进制值的结果字段(例如:“digest”) |
| –check-internet | 评估目标前检查互联网连接 |
| –cleanup | 清理 DBMS 中 sqlmap 相关的 UDF 和表 |
| –crawl=CRAWLDEPTH | 从目标 URL 开始爬取网站 |
| –crawl-exclude=CEXCLUDE | 用于排除爬取页面的正则表达式(例如:“logout”) |
| –csv-del=CSVDEL | CSV 输出的分隔字符(默认 “,”) |
| –charset=CHARSET | 盲注字符集(例如:“0123456789abcdef”) |
| –dump-file=DUMPF | 将导出数据存储到自定义文件 |
| –dump-format=DUMPFMT | 导出数据格式(默认 CSV、HTML 或 SQLITE) |
| –encoding=ENCODING | 数据获取使用的字符编码(例如:GBK) |
| –eta | 显示每个输出的预计完成时间 |
| –flush-session | 清空当前目标的会话文件 |
| –forms | 解析并测试目标 URL 上的表单 |
| –fresh-queries | 忽略会话文件中存储的查询结果 |
| –gpage=GOOGLEPAGE | 使用指定页码的 Google 黑客语法结果 |
| –har=HARFILE | 将所有 HTTP 流量记录到 HAR 文件 |
| –hex | 数据获取时使用十六进制转换 |
| –output-dir=OUTDIR | 自定义输出目录路径 |
| –parse-errors | 解析并显示响应中的 DBMS 错误信息 |
| –preprocess=PREPROC | 用于预处理(请求)的指定脚本 |
| –postprocess=POSTPROC | 用于后处理(响应)的指定脚本 |
| –repair | 重新导出带有未知字符标记(?)的条目 |
| –save=SAVECONFIG | 将选项保存到配置 INI 文件 |
| –scope=SCOPE | 用于过滤目标的正则表达式 |
| –skip-heuristics | 跳过漏洞的启发式检测 |
| –skip-waf | 跳过 WAF/IPS 防护的启发式检测 |
| –table-prefix=TPREFIX | 临时表使用的前缀(默认:“sqlmap”) |
| –test-filter=TESTF | 按负载和 / 或标题选择测试(例如:ROW) |
| –test-skip=TESTS | 按负载和 / 或标题跳过测试(例如:BENCHMARK) |
| –time-limit=TIMELIMIT | 运行时间限制(秒)(例如:3600) |
| –unsafe-naming | 禁用 DBMS 标识符转义(例如:“user”) |
| –web-root=WEBROOT | Web 服务器文档根目录(例如:“/var/www”) |
其他(Miscellaneous)
不属于上述类别的其他选项
| 选项 | 说明 |
|---|
| -z MNEMONICS | 使用简短助记符(例如:“flu,bat,ban,tec=EU”) |
| –alert=ALERT | 发现 SQL 注入时运行主机 OS 命令 |
| –beep | 遇到问题和 / 或发现漏洞时发出蜂鸣声 |
| –dependencies | 检查缺失的(可选)sqlmap 依赖项 |
| –disable-coloring | 禁用控制台输出着色 |
| –disable-hashing | 禁用表导出的哈希分析 |
| –list-tampers | 显示可用的篡改脚本列表 |
| –no-logging | 禁用文件日志记录 |
| –no-truncate | 禁用控制台输出截断(例如:长条目…) |
| –offline | 工作在离线模式(仅使用会话数据) |
| –purge | 安全删除 sqlmap 数据目录中的所有内容 |
| –results-file=RFILE | 多目标模式下 CSV 结果文件的位置 |
| –shell | 交互式 sqlmap shell 提示符 |
| –tmp-dir=TMPDIR | 存储临时文件的本地目录 |
| –unstable | 为不稳定连接调整选项 |
| –update | 更新 sqlmap |
| –wizard | 面向初学者的简单向导界面 |