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