sqlmap参数详解:

由于Sqlmap 是常用工具之一,所以本篇的篇幅较长,详解一次所有参数。

1、Options(选项)

  1. Usage: python sqlmap.py [options]
  2. Options(选项):
  3. -h, --help Show basic help message and exit
  4. ## 展示帮助文档 参数
  5. -hh Show advanced help message and exit
  6. ## 展示详细帮助文档参数
  7. --version Show program's version number and exit
  8. ## 显示程序的版本号
  9. -v VERBOSE Verbosity level: 0-6 (default 1)
  10. ## 详细级别:0-6(默认为1)

2、Target(目标)

  1. Target(目标):
  2. At least one of these options has to be provided to define the target(s)
  3. -d DIRECT Connection string for direct database connection
  4. ## 指定具体数据库
  5. -u URL, --url=URL Target URL (e.g. "http://www.site.com/vuln.php?id=1")
  6. ## 目标URL
  7. -l LOGFILE Parse target(s) from Burp or WebScarab proxy log file
  8. ## 解析目标(s)从Burp或WebScarab代理日志文件
  9. -x SITEMAPURL Parse target(s) from remote sitemap(.xml) file
  10. ## 解析目标(s)从远程站点地图文件(.xml)
  11. -m BULKFILE Scan multiple targets given in a textual file
  12. ## 扫描文本文件中给出的多个目标
  13. -r REQUESTFILE Load HTTP request from a file
  14. ## 从本地文件加载HTTP请求 ,多用于post注入。
  15. -g GOOGLEDORK Process Google dork results as target URLs
  16. ## 处理Google的结果作为目标URL。
  17. -c CONFIGFILE Load options from a configuration INI file
  18. ## 从INI配置文件中加载选项。

3、Request(请求)

  1. Request(请求):
  2. These options can be used to specify how to connect to the target URL
  3. ## 这些选项可以用来指定如何连接到目标URL。
  4. --method=METHOD Force usage of given HTTP method (e.g. PUT)
  5. ## 强制使用给定的HTTP方法(e.g. PUT)
  6. --data=DATA Data string to be sent through POST
  7. ## 通过POST发送的数据字符串
  8. --param-del=PARA.. Character used for splitting parameter values
  9. ## 用于拆分参数值的字符
  10. --cookie=COOKIE HTTP Cookie header value HTTP
  11. ## Cookie头的值
  12. --cookie-del=COO.. Character used for splitting cookie values
  13. ## 用于分割Cookie值的字符
  14. --load-cookies=L.. File containing cookies in Netscape/wget format
  15. ## 包含Netscape / wget格式的cookie的文件
  16. --drop-set-cookie Ignore Set-Cookie header from response
  17. ## 从响应中忽略Set-Cookie头
  18. --user-agent=AGENT HTTP User-Agent header value
  19. ## 指定 HTTP User - Agent头
  20. --random-agent Use randomly selected HTTP User-Agent header value
  21. ## 使用随机选定的HTTP User - Agent头
  22. --host=HOST HTTP Host header value
  23. ## HTTP主机头值
  24. --referer=REFERER HTTP Referer header value
  25. ## 指定 HTTP Referer头
  26. -H HEADER, --hea.. Extra header (e.g. "X-Forwarded-For: 127.0.0.1")
  27. ## 额外header
  28. --headers=HEADERS Extra headers (e.g. "Accept-Language: fr\\nETag: 123")
  29. ## 额外header
  30. --auth-type=AUTH.. HTTP authentication type (Basic, Digest, NTLM or PKI)HTTP
  31. ## 认证类型(Basic, Digest, NTLM or PKI)
  32. --auth-cred=AUTH.. HTTP authentication credentials (name:password)
  33. ## HTTP认证凭证(name:password)
  34. --auth-file=AUTH.. HTTP authentication PEM cert/private key file
  35. ## HTTP认证 PEM认证/私钥文件
  36. --ignore-401 Ignore HTTP Error 401 (Unauthorized)
  37. ## 忽略HTTP错误401
  38. --proxy=PROXY Use a proxy to connect to the target URL
  39. ## 使用代理连接到目标网址
  40. --proxy-cred=PRO.. Proxy authentication credentials (name:password)
  41. ## 代理认证证书(name:password)
  42. --proxy-file=PRO.. Load proxy list from a file
  43. ## 从文件中加载代理列表
  44. --ignore-proxy Ignore system default proxy settings
  45. ## 忽略系统默认代理设置
  46. --tor Use Tor anonymity network
  47. ## 使用Tor匿名网络
  48. --tor-port=TORPORT Set Tor proxy port other than default
  49. ## 设置Tor代理端口而不是默认值
  50. --tor-type=TORTYPE Set Tor proxy type (HTTP (default), SOCKS4 or SOCKS5)
  51. ## 设置Tor代理类型
  52. --check-tor Check to see if Tor is used properly
  53. ## 检查Tor是否正确使用
  54. --delay=DELAY Delay in seconds between each HTTP request
  55. ## 每个HTTP请求之间的延迟(秒)
  56. --timeout=TIMEOUT Seconds to wait before timeout connection (default 30)
  57. ## 秒超时连接前等待(默认30)
  58. --retries=RETRIES Retries when the connection timeouts (default 3)
  59. ## 连接超时时重试(默认值3)
  60. --randomize=RPARAM Randomly change value for given parameter(s)
  61. ## 随机更改给定参数的值(s)
  62. --safe-url=SAFEURL URL address to visit frequently during testing
  63. ## 在测试期间频繁访问的URL地址
  64. --safe-post=SAFE.. POST data to send to a safe URL
  65. ## POST数据发送到安全URL
  66. --safe-req=SAFER.. Load safe HTTP request from a file
  67. ## 从文件加载安全HTTP请求
  68. --safe-freq=SAFE.. Test requests between two visits to a given safe URL
  69. ## 在两次访问给定安全网址之间测试请求
  70. --skip-urlencode Skip URL encoding of payload data
  71. ## 跳过有效载荷数据的URL编码
  72. --csrf-token=CSR.. Parameter used to hold anti-CSRF token
  73. ## 参数用于保存anti-CSRF令牌
  74. --csrf-url=CSRFURL URL address to visit to extract anti-CSRF token
  75. ## 提取anti-CSRF URL地址访问令牌
  76. --force-ssl Force usage of SSL/HTTPS
  77. ## 强制使用SSL /HTTPS
  78. --hpp Use HTTP parameter pollution method
  79. ## 使用HTTP参数pollution的方法
  80. --eval=EVALCODE Evaluate provided Python code before the request (e.g. 评估请求之前提供Python代码"import hashlib;id2=hashlib.md5(id).hexdigest()")

4、Optimization(优化)

  1. Optimization(优化):
  2. These options can be used to optimize the performance of sqlmap
  3. ## 这些选项可用于优化sqlmap的性能
  4. -o Turn on all optimization switches
  5. ## 开启所有优化开关
  6. --predict-output Predict common queries output
  7. ## 预测常见的查询输出
  8. --keep-alive Use persistent HTTP(s) connections
  9. ## 使用持久的HTTP(S)连接
  10. --null-connection Retrieve page length without actual HTTP response body
  11. ## 从没有实际的HTTP响应体中检索页面长度
  12. --threads=THREADS Max number of concurrent HTTP(s) requests (default 1)
  13. ## 最大的HTTP(S)请求并发量(默认为1)

5、Injection(注入)

  1. Injection(注入):
  2. These options can be used to specify which parameters to test for, provide custom injection payloads and optional tampering scripts
  3. ## 这些选项可以用来指定测试哪些参数, 提供自定义的注入payloads和可选篡改脚本。
  4. -p TESTPARAMETER Testable parameter(s)
  5. ## 可测试的参数(S)
  6. --skip=SKIP Skip testing for given parameter(s)
  7. ## 跳过对给定参数的测试
  8. --skip-static Skip testing parameters that not appear to be dynamic
  9. ## 跳过测试不显示为动态的参数
  10. --param-exclude=.. Regexp to exclude parameters from testing (e.g. "ses")
  11. ## 使用正则表达式排除参数进行测试(e.g. "ses")
  12. --dbms=DBMS Force back-end DBMS to this value
  13. ## 强制后端的DBMS为此值
  14. --dbms-cred=DBMS.. DBMS authentication credentials (user:password)
  15. ## DBMS认证凭证(user:password)
  16. --os=OS Force back-end DBMS operating system to this value
  17. ## 强制后端的DBMS操作系统为这个值
  18. --invalid-bignum Use big numbers for invalidating values
  19. ## 使用大数字使值无效
  20. --invalid-logical Use logical operations for invalidating values
  21. ## 使用逻辑操作使值无效
  22. --invalid-string Use random strings for invalidating values
  23. ## 使用随机字符串使值无效
  24. --no-cast Turn off payload casting mechanism
  25. ## 关闭有效载荷铸造机制
  26. --no-escape Turn off string escaping mechanism
  27. ## 关闭字符串转义机制
  28. --prefix=PREFIX Injection payload prefix string
  29. ## 注入payload字符串前缀
  30. --suffix=SUFFIX Injection payload suffix string
  31. ## 注入payload字符串后缀
  32. --tamper=TAMPER Use given script(s) for tampering injection data
  33. ## 使用给定的脚本(S)篡改注入数据

6、Detection(检测)

  1. Detection(检测):
  2. These options can be used to customize the detection phase
  3. ## 这些选项可以用来指定在SQL盲注时如何解析和比较HTTP响应页面的内容。
  4. --level=LEVEL Level of tests to perform (1-5, default 1)
  5. ## 执行测试的等级(1-5,默认为1)
  6. --risk=RISK Risk of tests to perform (1-3, default 1)
  7. ## 执行测试的风险(0-3,默认为1)
  8. --string=STRING String to match when query is evaluated to True
  9. ## 查询时有效时在页面匹配字符串
  10. --not-string=NOT.. String to match when query is evaluated to False
  11. ## 当查询求值为无效时匹配的字符串
  12. --regexp=REGEXP Regexp to match when query is evaluated to True
  13. ## 查询时有效时在页面匹配正则表达式
  14. --code=CODE HTTP code to match when query is evaluated to True
  15. ## 当查询求值为True时匹配的HTTP代码
  16. --text-only Compare pages based only on the textual content
  17. ## 仅基于在文本内容比较网页
  18. --titles Compare pages based only on their titles
  19. ## 仅根据他们的标题进行比较

7、Techniques(技巧)

  1. Techniques(技巧):
  2. These options can be used to tweak testing of specific SQL injection techniques
  3. ## 这些选项可用于调整具体的SQL注入测试。
  4. --technique=TECH SQL injection techniques to use (default "BEUSTQ")
  5. ## SQL 注入技术测试(默认BEUST)
  6. --time-sec=TIMESEC Seconds to delay the DBMS response (default 5)
  7. ## DBMS响应的延迟时间(默认为5秒)
  8. --union-cols=UCOLS Range of columns to test for UNION query SQL injection
  9. ## 定列范围用于测试UNION查询注入
  10. --union-char=UCHAR Character to use for bruteforcing number of columns
  11. ## 用于暴力猜解列数的字符
  12. --union-from=UFROM Table to use in FROM part of UNION query SQL injection
  13. ## 要在UNION查询SQL注入的FROM部分使用的表
  14. --dns-domain=DNS.. Domain name used for DNS exfiltration attack
  15. ## 域名用于DNS漏出攻击
  16. --second-order=S.. Resulting page URL searched for second-order response
  17. ## 生成页面的URL搜索为second-order响应

8、Fingerprint(指纹)

  1. Fingerprint(指纹):
  2. -f, --fingerprint Perform an extensive DBMS version fingerprint
  3. ## 执行检查广泛的DBMS版本指纹

9、Enumeration(枚举)

  1. Enumeration(枚举):
  2. These options can be used to enumerate the back-end database management system information, structure and data contained in the tables. Moreover you can run your own SQL statements
  3. ## 这些选项可以用来列举后端数据库管理系统的信息、表中的结构和数据。此外,您还可以运行您自己的SQL语句。
  4. -a, --all Retrieve everything
  5. ## 检索一切
  6. -b, --banner Retrieve DBMS banner
  7. ## 检索数据库管理系统的标识
  8. --current-user Retrieve DBMS current user
  9. ## 检索数据库管理系统的 标识
  10. --current-db Retrieve DBMS current database
  11. ## 检索数据库管理系统当前数据库
  12. -hostname Retrieve DBMS server hostname
  13. ## 检索数据库服务器的主机名
  14. --is-dba Detect if the DBMS current user is DBA
  15. ## 检测DBMS当前用户是否DBA
  16. --users Enumerate DBMS users
  17. ## 枚举数据库管理系统用户
  18. --passwords Enumerate DBMS users password hashes
  19. ## 枚举数据库管理系统用户密码哈希
  20. --privileges Enumerate DBMS users privileges
  21. ## 枚举数据库管理系统用户的权限
  22. --roles Enumerate DBMS users roles
  23. ## 枚举数据库管理系统用户的角色
  24. --dbs Enumerate DBMS databases
  25. ## 枚举数据库管理系统数据库
  26. --tables Enumerate DBMS database tables
  27. ## 枚举的DBMS数据库中的表
  28. --columns Enumerate DBMS database table columns
  29. ## 枚举DBMS数据库表列
  30. --schema Enumerate DBMS schema
  31. ## 枚举数据库架构
  32. --count Retrieve number of entries for table(s)
  33. ## 检索表的条目数
  34. --dump Dump DBMS database table entries
  35. ## 转储数据库管理系统的数据库中的表项
  36. --dump-all Dump all DBMS databases tables entries
  37. ## 转储数据库管理系统的数据库中的表项
  38. --search Search column(s), table(s) and/or database name(s)
  39. ## 搜索列(S),表(S)和/或数据库名称(S)
  40. --comments Retrieve DBMS comments
  41. ## 检索数据库的comments(注释、评论)
  42. -D DB DBMS database to enumerate
  43. ## 要进行枚举的数据库名
  44. -T TBL DBMS database table(s) to enumerate
  45. ## 要进行枚举的数据库表
  46. -C COL DBMS database table column(s) to enumerate
  47. ## 要进行枚举的数据库列
  48. -X EXCLUDECOL DBMS database table column(s) to not enumerate
  49. ## 要不进行枚举的数据库列
  50. -U USER DBMS user to enumerate
  51. ## 用来进行枚举的数据库用户
  52. --exclude-sysdbs Exclude DBMS system databases when enumerating tables
  53. ## 枚举表时排除系统数据库
  54. --pivot-column=P.. Pivot column name
  55. ## 主列名称
  56. --where=DUMPWHERE Use WHERE condition while table dumping
  57. ## 使用WHERE条件进行表转储
  58. --start=LIMITSTART First query output entry to retrieve
  59. ## 第一个查询输出进入检索
  60. --stop=LIMITSTOP Last query output entry to retrieve
  61. ## 最后查询的输出进入检索
  62. --first=FIRSTCHAR First query output word character to retrieve
  63. ## 第一个查询输出字的字符检索
  64. --last=LASTCHAR Last query output word character to retrieve
  65. ## 最后查询的输出字字符检索
  66. --sql-query=QUERY SQL statement to be executed
  67. ## 要执行的SQL语句
  68. --sql-shell Prompt for an interactive SQL shell
  69. ## 提示交互式SQL的shell
  70. --sql-file=SQLFILE Execute SQL statements from given file(s)
  71. ## 从给定文件执行SQL语句

10、Brute Force(蛮力)

  1. Brute force(蛮力):
  2. These options can be used to run brute force checks
  3. ## 这些选项可以被用来运行蛮力检查。
  4. --common-tables Check existence of common tables
  5. ## 检查存在共同表
  6. --common-columns Check existence of common columns
  7. ## 检查存在共同列

11、User-defined function injection(用户自定义函数注入)

  1. User-defined function injection(用户自定义函数注入):
  2. These options can be used to create custom user-defined functions
  3. ## 这些选项可以用来创建用户自定义函数。
  4. --udf-inject Inject custom user-defined functions
  5. ## 注入用户自定义函数
  6. --shared-lib=SHLIB Local path of the shared library
  7. ## 共享库的本地路径

12、File system access(访问文件系统)

  1. File system access(访问文件系统):
  2. These options can be used to access the back-end database management system underlying file system
  3. ## 这些选项可以被用来访问后端数据库管理系统的底层文件系统。
  4. --file-read=RFILE Read a file from the back-end DBMS file system
  5. ## 从后端的数据库管理系统文件系统读取文件
  6. --file-write=WFILE Write a local file on the back-end DBMS file system
  7. ## 编辑后端的数据库管理系统文件系统上的本地文件
  8. --file-dest=DFILE Back-end DBMS absolute filepath to write to
  9. ## 后端的数据库管理系统写入文件的绝对路径

13、Operating system access(操作系统访问)

  1. Operating system access(操作系统访问):
  2. These options can be used to access the back-end database management system underlying operating system
  3. ## 这些选项可以用于访问后端数据库管理系统的底层操作系统。
  4. --os-cmd=OSCMD Execute an operating system command
  5. ## 执行操作系统命令
  6. --os-shell Prompt for an interactive operating system shell
  7. ## 交互式的操作系统的shell
  8. --os-pwn Prompt for an OOB shell, Meterpreter or VNC
  9. ## 获取一个OOB shell,meterpreter或VNC
  10. --os-smbrelay One click prompt for an OOB shell, Meterpreter or VNC
  11. ## 一键获取一个OOB shell,meterpreter或VNC
  12. --os-bof Stored procedure buffer overflow exploitation
  13. ## 存储过程缓冲区溢出利用
  14. --priv-esc Database process user privilege escalation
  15. ## 数据库进程用户权限提升
  16. --msf-path=MSFPATH Local path where Metasploit Framework is installed Metasploit Framework
  17. ## 本地的安装路径
  18. --tmp-path=TMPPATH Remote absolute path of temporary files directory
  19. ## 远程临时文件目录的绝对路径

14、Windows registry access(Windows注册表访问)

  1. Windows registry accessWindows注册表访问):
  2. These options can be used to access the back-end database management system Windows registry
  3. ## 这些选项可以被用来访问后端数据库管理系统Windows注册表。
  4. --reg-read Read a Windows registry key value
  5. ## 读一个Windows注册表项值
  6. --reg-add Write a Windows registry key value data
  7. ## 写一个Windows注册表项值数据
  8. --reg-del Delete a Windows registry key value
  9. ## 删除Windows注册表键值
  10. --reg-key=REGKEY Windows registry key
  11. ## Windows注册表键
  12. --reg-value=REGVAL Windows registry key value
  13. ## Windows注册表项值
  14. --reg-data=REGDATA Windows registry key value data
  15. ## Windows注册表键值数据
  16. --reg-type=REGTYPE Windows registry key value type
  17. ## Windows注册表项值类型

15、General(一般)

  1. General(一般):
  2. These options can be used to set some general working parameters
  3. ## 这些选项可以用来设置一些一般的工作参数。
  4. -s SESSIONFILE Load session from a stored (.sqlite) file
  5. ## 保存和恢复检索会话文件的所有数据
  6. -t TRAFFICFILE Log all HTTP traffic into a textual file
  7. ## 记录所有HTTP流量到一个文本文件中
  8. --batch Never ask for user input, use the default behaviour
  9. ## 从不询问用户输入,使用所有默认配置。
  10. --binary-fields=.. Result fields having binary values (e.g. "digest")
  11. ## 具有二进制值的结果字段
  12. --charset=CHARSET Force character encoding used for data retrieval
  13. ## 强制用于数据检索的字符编码
  14. --crawl=CRAWLDEPTH Crawl the website starting from the target URL
  15. ## 从目标网址开始抓取网站
  16. --crawl-exclude=.. Regexp to exclude pages from crawling (e.g. "logout")
  17. ## 正则表达式排除网页抓取
  18. --csv-del=CSVDEL Delimiting character used in CSV output (default ",")
  19. ## 分隔CSV输出中使用的字符
  20. --dump-format=DU.. Format of dumped data (CSV (default), HTML or SQLITE)
  21. ## 转储数据的格式
  22. --eta Display for each output the estimated time of arrival
  23. ## 显示每个输出的预计到达时间
  24. --flush-session Flush session files for current target
  25. ## 刷新当前目标的会话文件
  26. --forms Parse and test forms on target URL
  27. ## 在目标网址上解析和测试表单
  28. --fresh-queries Ignore query results stored in session file
  29. ## 忽略在会话文件中存储的查询结果
  30. --hex Use DBMS hex function(s) for data retrieval
  31. ## 使用DBMS hex函数进行数据检索
  32. --output-dir=OUT.. Custom output directory path
  33. ## 自定义输出目录路径
  34. --parse-errors Parse and display DBMS error messages from responses
  35. ## 解析和显示响应中的DBMS错误消息
  36. --save=SAVECONFIG Save options to a configuration INI file
  37. ## 保存选项到INI配置文件
  38. --scope=SCOPE Regexp to filter targets from provided proxy log
  39. ## 使用正则表达式从提供的代理日志中过滤目标
  40. --test-filter=TE.. Select tests by payloads and/or titles (e.g. ROW)
  41. ## 根据有效负载和/或标题(e.g. ROW)选择测试
  42. --test-skip=TEST.. Skip tests by payloads and/or titles (e.g. BENCHMARK)
  43. ## 根据有效负载和/或标题跳过测试(e.g. BENCHMARK)
  44. --update Update sqlmap
  45. ## 更新SqlMap

16、Miscellaneous(杂项)

  1. Miscellaneous(杂项):
  2. -z MNEMONICS Use short mnemonics (e.g. "flu,bat,ban,tec=EU")
  3. ## 使用简短的助记符
  4. --alert=ALERT Run host OS command(s) when SQL injection is found
  5. ## 在找到SQL注入时运行主机操作系统命令
  6. --answers=ANSWERS Set question answers (e.g. "quit=N,follow=N")
  7. ## 设置问题答案
  8. --beep Beep on question and/or when SQL injection is found
  9. ## 发现SQL 注入时提醒
  10. --cleanup Clean up the DBMS from sqlmap specific UDF and tables SqlMap
  11. ## 具体的UDF和表清理DBMS
  12. --dependencies Check for missing (non-core) sqlmap dependencies
  13. ## 检查是否缺少(非内核)sqlmap依赖关系
  14. --disable-coloring Disable console output coloring
  15. ## 禁用控制台输出颜色
  16. --gpage=GOOGLEPAGE Use Google dork results from specified page number
  17. ## 使用Google dork结果指定页码
  18. --identify-waf Make a thorough testing for a WAF/IPS/IDS protection
  19. ## 对WAF / IPS / IDS保护进行全面测试
  20. --skip-waf Skip heuristic detection of WAF/IPS/IDS protection
  21. ## 跳过启发式检测WAF / IPS / IDS保护
  22. --mobile Imitate smartphone through HTTP User-Agent header
  23. ## 通过HTTP User-Agent标头模仿智能手机
  24. --offline Work in offline mode (only use session data)
  25. ## 在离线模式下工作(仅使用会话数据)
  26. --page-rank Display page rank (PR) for Google dork results
  27. ## Google dork结果显示网页排名(PR)
  28. --purge-output Safely remove all content from output directory
  29. ## 安全地从输出目录中删除所有内容
  30. --smart Conduct thorough tests only if positive heuristic(s)
  31. ## 只有在正启发式时才进行彻底测试
  32. --sqlmap-shell Prompt for an interactive sqlmap shell
  33. ## 提示交互式 sqlmap shell
  34. --wizard Simple wizard interface for beginner users
  35. ## 给初级用户的简单向导界面

—By Micropoor