使用Ctrl+F更方便
方法:
python sqlmap.py [options]
选项:
| 参数 |
简介 |
| -h, --help |
显示基本帮助信息并退出 |
| -hh |
显示高级帮助信息并退出 |
| --version |
显示程序的版本号并退出 |
| -v VERBOSE |
冗余级别:0-6(默认为1) |
目标:
必须提供这些选项中的至少一个来定义目标
| 参数 |
简介 |
| -d DIRECT |
用于直接数据库连接的连接字符串 |
| -u URL, --url=URL |
如目标URL(e.g. “http://www.site.com/vuln.php?id=1”) |
| -l LOGFILE |
从Burp或WebScarab代理日志文件解析目标 |
| -m BULKFILE |
扫描文本文件中给定的多个目标 |
| -r REQUESTFILE |
从文件加载HTTP请求 |
| -g GOOGLEDORK |
将谷歌结果处理为目标url |
| -c CONFIGFILE |
从配置INI文件加载选项 |
请求:
这些选项可用于指定如何连接到目标URL
| 参数 |
简介 |
| --method=METHOD |
强制使用给定的HTTP方法(e.g. PUT) |
| --data=DATA |
通过POST发送的数据字符串(e.g. “id = 1”) |
| --param-del=PARA.. |
用于分割参数值的字符(e.g. &) |
| --cookie=COOKIE |
HTTP Cookie头值(e.g. “PHPSESSID = a8d127e…”) |
| --cookie-del=COO.. |
用于分割cookie值的字符(e.g. ; ) |
| --load-cookies=L.. |
包含Netscape/wget格式cookies的文件 |
| --drop-set-cookie |
忽略响应中的Set-Cookie头 |
| --user-agent=AGENT |
HTTP用户代理头值 |
| --random-agent |
使用随机选择的HTTP用户代理头值 |
| --host=HOST |
HTTP主机报头值 |
| --referer=REFERER |
HTTP引用头值 |
| -H HEADER, --hea.. |
额外的报头(e.g. "X-Forwarded-For: 127.0.0.1") |
| --headers=HEADERS |
额外的报头(e.g. "Accept-Language: fr\nETag: 123") |
| --auth-type=AUTH.. |
HTTP身份验证类型(基本、摘要、NTLM或PKI) |
| --auth-cred=AUTH.. |
HTTP身份验证凭证(name:password) |
| --auth-file=AUTH.. |
HTTP身份验证PEM证书/私钥文件 |
| --ignore-code=IG.. |
忽略(problematic)HTTP错误码(e.g. 401) |
| --ignore-proxy |
忽略系统默认代理设置 |
| --ignore-redirects |
忽略重定向的尝试 |
| --ignore-timeouts |
忽略连接超时 |
| --proxy=PROXY |
使用代理连接到目标URL |
| --proxy-cred=PRO.. |
代理身份验证凭据(name:password) |
| --proxy-file=PRO.. |
从文件加载代理列表 |
| --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) |
| --randomize=RPARAM |
随机改变给定参数的值(s) |
| --safe-url=SAFEURL |
测试期间经常访问的URL地址 |
| --safe-post=SAFE.. |
POST数据发送到一个安全的URL |
| --safe-req=SAFER.. |
从文件加载安全的HTTP请求 |
| --safe-freq=SAFE.. |
在对给定安全URL的两次访问之间测试请求 |
| --skip-urlencode |
跳过有效负载数据的URL编码 |
| --csrf-token=CSR.. |
用于保存反csrf令牌的参数 |
| --csrf-url=CSRFURL |
提取反csrf令牌访问的URL地址 |
| --force-ssl |
强制使用SSL/HTTPS |
| --hpp |
使用HTTP参数污染方法 |
| --eval=EVALCODE |
在请求之前评估提供的Python代码(e.g. "import hashlib;id2=hashlib.md5(id).hexdigest()") |
最佳化:
这些选项可用于优化sqlmap的性能
| 参数 |
简介 |
| -o |
打开所有优化开关 |
| --predict-output |
预测常见查询输出 |
| --keep-alive |
使用持久HTTP(S)连接 |
| --null-connection |
检索页面长度,而不需要实际的HTTP响应体 |
| --threads=THREADS |
最大并发HTTP(S)请求数(默认为1) |
注射:
这些选项可用于指定要测试的参数,提供自定义注入有效负载和可选的篡改脚本
| 参数 |
选项 |
| -p TESTPARAMETER |
可测性参数(s) |
| --skip=SKIP |
跳过给定参数的测试(s) |
| --skip-static |
跳过看起来不是动态的测试参数 |
| --param-exclude=.. |
Regexp从测试中排除参数(e.g. "ses") |
| --dbms=DBMS |
强制后端DBMS提供价值 |
| --dbms-cred=DBMS.. |
DBMS身份验证凭证(user:password) |
| --os=OS |
强制后端DBMS操作系统提供价值 |
| --invalid-bignum |
使用大的数字使值无效 |
| --invalid-logical |
使用逻辑操作使值无效 |
| --invalid-string |
使用随机字符串使值无效 |
| --no-cast |
关闭有效载荷铸造机制 |
| --no-escape |
关闭字符串转义机制 |
| --prefix=PREFIX |
注入有效载荷前缀字符串 |
| --suffix=SUFFIX |
注入有效负载后缀字符串 |
| --tamper=TAMPER |
使用给定的脚本篡改注入数据 |
探测:
这些选项可用于自定义检测阶段
| 参数 |
简介 |
| --level=LEVEL |
要执行的测试级别(1-5,默认为1) |
| --risk=RISK |
要执行的测试的风险(1-3,默认为1) |
| --string=STRING |
当查询计算为True时匹配的字符串 |
| --not-string=NOT.. |
当查询被计算为False时匹配的字符串 |
| --regexp=REGEXP |
当查询被计算为True时,将匹配Regexp |
| --code=CODE |
当查询被计算为True时匹配的HTTP代码 |
| --text-only |
仅根据文本内容比较页面 |
| --titles |
仅根据标题比较页面 |
方法:
这些选项可用于调整特定SQL注入的测试
| 参数 |
简介 |
| --technique=TECH |
使用SQL注入技术(默认为 "BEUSTQ") |
| --time-sec=TIMESEC |
延迟DBMS响应的秒数(默认为5) |
| --union-cols=UCOLS |
要测试联合查询SQL注入的列的范围 |
| --union-char=UCHAR |
用于强制列数的字符 |
| --union-from=UFROM |
表中使用的UNION查询的SQL注入 |
| --dns-domain=DNS.. |
域名用于DNS泄露攻击 |
| --second-url=SEC.. |
结果页面URL搜索二阶响应 |
| --second-req=SEC.. |
从文件加载二级HTTP请求 |
指纹:
| 参数 |
简介 |
| -f, --fingerprint |
执行一个广泛的DBMS版本指纹 |
枚举:
这些选项可用于枚举表中包含的后端数据库管理系统信息、结构和数据。此外,您可以运行自己的SQL语句
| 参数 |
简介 |
| -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注释 |
| -D DB |
DBMS数据库枚举 |
| -T TBL |
用于枚举的DBMS数据库表 |
| -C COL |
DBMS数据库表列枚举 |
| -X EXCLUDE |
不枚举的DBMS数据库标识符 |
| -U USER |
DBMS用户枚举 |
| --exclude-sysdbs |
枚举表时要排除DBMS系统数据库 |
| --pivot-column=P.. |
主列名称 |
| --where=DUMPWHERE |
使用时,条件下,表倾倒 |
| --start=LIMITSTART |
首先转储要检索的表条目 |
| --stop=LIMITSTOP |
要检索的最后一个转储表条目 |
| --first=FIRSTCHAR |
首先查询输出要检索的字元 |
| --last=LASTCHAR |
最后一个查询输出要检索的字元 |
| --sql-query=QUERY |
要执行的SQL语句 |
| --sql-shell |
交互式SQL shell的提示符 |
| --sql-file=SQLFILE |
执行给定文件中的SQL语句 |
暴力破解:
这些选项可用于运行强制检查
| 参数 |
简介 |
| --common-tables |
检查公共表的存在性 |
| --common-columns |
检查公共列的存在性 |
用户定义函数注入:
这些选项可用于创建自定义的用户定义函数
| 参数 |
简介 |
| --udf-inject |
注入自定义的用户定义函数 |
| --shared-lib=SHLIB |
共享库的本地路径 |
文件系统访问:
这些选项可用于访问底层文件系统的后端数据库管理系统
| 参数 |
简介 |
| --file-read=FILE.. |
从后端DBMS文件系统读取文件 |
| --file-write=FIL.. |
在后端DBMS文件系统上编写一个本地文件 |
| --file-dest=FILE.. |
要写入的后端DBMS绝对文件路径 |
操作系统访问:
这些选项可用于访问底层操作系统的后端数据库管理系统
| 参数 |
简介 |
| --os-cmd=OSCMD |
执行操作系统命令 |
| --os-shell |
交互操作系统外壳的提示符 |
| --os-pwn |
提示输入OOB shell、Meterpreter或VNC |
| --os-smbrelay |
单击提示符可以获得OOB shell、Meterpreter或VNC |
| --os-bof |
存储过程缓冲区溢出利用 |
| --priv-esc |
数据库进程用户权限升级 |
| --msf-path=MSFPATH |
安装Metasploit框架的本地路径 |
| --tmp-path=TMPPATH |
临时文件目录的远程绝对路径 |
Windows注册表访问:
这些选项可用于访问后端数据库管理系统Windows registry
| 参数 |
简介 |
| --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注册表键值类型 |
通用:
这些选项可用于设置一些通用的工作参数
| 参数 |
简介 |
| -s SESSIONFILE |
从存储的(.sqlite)文件加载会话 |
| -t TRAFFICFILE |
将所有HTTP流量记录到一个文本文件中 |
| --answers=ANSWERS |
设置预定义的答案(e.g. "quit=N,follow=N") |
| --base64=BASE64P.. |
包含Base64编码数据的参数 |
| --batch |
永远不要要求用户输入,使用默认行为 |
| --binary-fields=.. |
具有二进制值的结果字段(e.g. "digest") |
| --check-internet |
在评估目标之前检查网络连接 |
| --crawl=CRAWLDEPTH |
从目标URL开始抓取网站 |
| --crawl-exclude=.. |
Regexp可以从爬行中排除页面(e.g. "logout") |
| --csv-del=CSVDEL |
CSV输出中使用的分隔字符(default ",") |
| --charset=CHARSET |
盲SQL注入字符集(e.g. "0123456789abcdef") |
| --dump-format=DU.. |
转储数据的格式(CSV(默认)、HTML或SQLITE) |
| --encoding=ENCOD.. |
用于数据检索的字符编码(e.g. GBK) |
| --eta |
显示每个输出的估计到达时间 |
| --flush-session |
刷新当前目标的会话文件 |
| --forms |
在目标URL上解析和测试表单 |
| --fresh-queries |
忽略存储在会话文件中的查询结果 |
| --har=HARFILE |
将所有HTTP流量记录到一个HAR文件中 |
| --hex |
在数据检索期间使用十六进制转换 |
| --output-dir=OUT.. |
自定义输出目录路径 |
| --parse-errors |
解析和显示来自响应的DBMS错误消息 |
| --preprocess=PRE.. |
使用给定的脚本对响应数据进行预处理 |
| --repair |
有未知字符标记(?) |
| --save=SAVECONFIG |
将选项保存到配置INI文件中 |
| --scope=SCOPE |
Regexp从提供的代理日志中筛选目标 |
| --test-filter=TE.. |
按有效负载和/或标题选择测试(e.g. ROW) |
| --test-skip=TEST.. |
通过有效负载和/或标题跳过测试(e.g. BENCHMARK) |
| --update |
更新sqlmap |
杂项:
| 参数 |
简介 |
| -z MNEMONICS |
使用简短的助记法(e.g. "flu,bat,ban,tec=EU") |
| --alert=ALERT |
当发现SQL注入时,运行主机OS命令 |
| --beep |
当发现问题和/或SQL注入时发出哔哔声 |
| --cleanup |
从特定于sqlmap的UDF和表中清理DBMS |
| --dependencies |
检查是否缺少(可选的)sqlmap依赖项 |
| --disable-coloring |
禁用控制台输出着色 |
| --gpage=GOOGLEPAGE |
使用指定页码的谷歌结果 |
| --identify-waf |
做一个彻底的WAF/IPS保护测试 |
| --list-tampers |
显示可用的篡改脚本列表 |
| --mobile |
通过HTTP用户代理头模拟智能手机 |
| --offline |
在脱机模式下工作(只使用会话数据) |
| --purge |
安全地从sqlmap数据目录中删除所有内容 |
| --skip-waf |
跳过WAF/IPS保护的启发式检测 |
| --smart |
只有在积极启发的情况下才进行彻底的测试 |
| --sqlmap-shell |
交互式sqlmap shell的提示符 |
| --tmp-dir=TMPDIR |
用于存储临时文件的本地目录 |
| --web-root=WEBROOT |
Web服务器文档根目录(e.g. "/var/www") |
| --wizard |
简单的向导界面为初学者用户 |