使用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
ETag: 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 |
简单的向导界面为初学者用户 |