|
- 用法
- Usage: python sqlmap.py [options]
- Options:
- -h, --help Show basic help message and exit
- -hh Show advanced help message and exit
- --version Show program's version number and exit
- -v VERBOSE Verbosity level: 0-6 (default 1)
- Target:
- At least one of these options has to be provided to define the
- target(s)
- -d DIRECT Connection string for direct database connection
- -u URL, --url=URL Target URL (e.g. "http://www.site.com/vuln.php?id=1")
- -l LOGFILE Parse target(s) from Burp or WebScarab proxy log file
- -m BULKFILE Scan multiple targets given in a textual file
- -r REQUESTFILE Load HTTP request from a file
- -g GOOGLEDORK Process Google dork results as target URLs
- -c CONFIGFILE Load options from a configuration INI file
- Request:
- These options can be used to specify how to connect to the target URL
- --method=METHOD Force usage of given HTTP method (e.g. PUT)
- --data=DATA Data string to be sent through POST (e.g. "id=1")
- --param-del=PARA.. Character used for splitting parameter values (e.g. &)
- --cookie=COOKIE HTTP Cookie header value (e.g. "PHPSESSID=a8d127e..")
- --cookie-del=COO.. Character used for splitting cookie values (e.g. ;)
- --live-cookies=L.. Live cookies file used for loading up-to-date values
- --load-cookies=L.. File containing cookies in Netscape/wget format
- --drop-set-cookie Ignore Set-Cookie header from response
- --user-agent=AGENT HTTP User-Agent header value
- --random-agent Use randomly selected HTTP User-Agent header value
- --host=HOST HTTP Host header value
- --referer=REFERER HTTP Referer header value
- -H HEADER, --hea.. Extra header (e.g. "X-Forwarded-For: 127.0.0.1")
- --headers=HEADERS Extra headers (e.g. "Accept-Language: fr\nETag: 123")
- --auth-type=AUTH.. HTTP authentication type (Basic, Digest, NTLM or PKI)
- --auth-cred=AUTH.. HTTP authentication credentials (name:password)
- --auth-file=AUTH.. HTTP authentication PEM cert/private key file
- --ignore-code=IG.. Ignore (problematic) HTTP error code (e.g. 401)
- --ignore-proxy Ignore system default proxy settings
- --ignore-redirects Ignore redirection attempts
- --ignore-timeouts Ignore connection timeouts
- --proxy=PROXY Use a proxy to connect to the target URL
- --proxy-cred=PRO.. Proxy authentication credentials (name:password)
- --proxy-file=PRO.. Load proxy list from a file
- --tor Use Tor anonymity network
- --tor-port=TORPORT Set Tor proxy port other than default
- --tor-type=TORTYPE Set Tor proxy type (HTTP, SOCKS4 or SOCKS5 (default))
- --check-tor Check to see if Tor is used properly
- --delay=DELAY Delay in seconds between each HTTP request
- --timeout=TIMEOUT Seconds to wait before timeout connection (default 30)
- --retries=RETRIES Retries when the connection timeouts (default 3)
- --randomize=RPARAM Randomly change value for given parameter(s)
- --safe-url=SAFEURL URL address to visit frequently during testing
- --safe-post=SAFE.. POST data to send to a safe URL
- --safe-req=SAFER.. Load safe HTTP request from a file
- --safe-freq=SAFE.. Test requests between two visits to a given safe URL
- --skip-urlencode Skip URL encoding of payload data
- --csrf-token=CSR.. Parameter used to hold anti-CSRF token
- --csrf-url=CSRFURL URL address to visit for extraction of anti-CSRF token
- --force-ssl Force usage of SSL/HTTPS
- --hpp Use HTTP parameter pollution method
- --eval=EVALCODE Evaluate provided Python code before the request (e.g.
- "import hashlib;id2=hashlib.md5(id).hexdigest()")
- Optimization:
- These options can be used to optimize the performance of sqlmap
- -o Turn on all optimization switches
- --predict-output Predict common queries output
- --keep-alive Use persistent HTTP(s) connections
- --null-connection Retrieve page length without actual HTTP response body
- --threads=THREADS Max number of concurrent HTTP(s) requests (default 1)
- Injection:
- These options can be used to specify which parameters to test for,
- provide custom injection payloads and optional tampering scripts
- -p TESTPARAMETER Testable parameter(s)
- --skip=SKIP Skip testing for given parameter(s)
- --skip-static Skip testing parameters that not appear to be dynamic
- --param-exclude=.. Regexp to exclude parameters from testing (e.g. "ses")
- --dbms=DBMS Force back-end DBMS to provided value
- --dbms-cred=DBMS.. DBMS authentication credentials (user:password)
- --os=OS Force back-end DBMS operating system to provided value
- --invalid-bignum Use big numbers for invalidating values
- --invalid-logical Use logical operations for invalidating values
- --invalid-string Use random strings for invalidating values
- --no-cast Turn off payload casting mechanism
- --no-escape Turn off string escaping mechanism
- --prefix=PREFIX Injection payload prefix string
- --suffix=SUFFIX Injection payload suffix string
- --tamper=TAMPER Use given script(s) for tampering injection data
- Detection:
- These options can be used to customize the detection phase
- --level=LEVEL Level of tests to perform (1-5, default 1)
- --risk=RISK Risk of tests to perform (1-3, default 1)
- --string=STRING String to match when query is evaluated to True
- --not-string=NOT.. String to match when query is evaluated to False
- --regexp=REGEXP Regexp to match when query is evaluated to True
- --code=CODE HTTP code to match when query is evaluated to True
- --text-only Compare pages based only on the textual content
- --titles Compare pages based only on their titles
- Techniques:
- These options can be used to tweak testing of specific SQL injection
- techniques
- --technique=TECH SQL injection techniques to use (default "BEUSTQ")
- --time-sec=TIMESEC Seconds to delay the DBMS response (default 5)
- --union-cols=UCOLS Range of columns to test for UNION query SQL injection
- --union-char=UCHAR Character to use for bruteforcing number of columns
- --union-from=UFROM Table to use in FROM part of UNION query SQL injection
- --dns-domain=DNS.. Domain name used for DNS exfiltration attack
- --second-url=SEC.. Resulting page URL searched for second-order response
- --second-req=SEC.. Load second-order HTTP request from file
- Fingerprint:
- -f, --fingerprint Perform an extensive DBMS version fingerprint
- Enumeration:
- 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
- -a, --all Retrieve everything
- -b, --banner Retrieve DBMS banner
- --current-user Retrieve DBMS current user
- --current-db Retrieve DBMS current database
- --hostname Retrieve DBMS server hostname
- --is-dba Detect if the DBMS current user is DBA
- --users Enumerate DBMS users
- --passwords Enumerate DBMS users password hashes
- --privileges Enumerate DBMS users privileges
- --roles Enumerate DBMS users roles
- --dbs Enumerate DBMS databases
- --tables Enumerate DBMS database tables
- --columns Enumerate DBMS database table columns
- --schema Enumerate DBMS schema
- --count Retrieve number of entries for table(s)
- --dump Dump DBMS database table entries
- --dump-all Dump all DBMS databases tables entries
- --search Search column(s), table(s) and/or database name(s)
- --comments Check for DBMS comments during enumeration
- -D DB DBMS database to enumerate
- -T TBL DBMS database table(s) to enumerate
- -C COL DBMS database table column(s) to enumerate
- -X EXCLUDE DBMS database identifier(s) to not enumerate
- -U USER DBMS user to enumerate
- --exclude-sysdbs Exclude DBMS system databases when enumerating tables
- --pivot-column=P.. Pivot column name
- --where=DUMPWHERE Use WHERE condition while table dumping
- --start=LIMITSTART First dump table entry to retrieve
- --stop=LIMITSTOP Last dump table entry to retrieve
- --first=FIRSTCHAR First query output word character to retrieve
- --last=LASTCHAR Last query output word character to retrieve
- --sql-query=QUERY SQL statement to be executed
- --sql-shell Prompt for an interactive SQL shell
- --sql-file=SQLFILE Execute SQL statements from given file(s)
- Brute force:
- These options can be used to run brute force checks
- --common-tables Check existence of common tables
- --common-columns Check existence of common columns
- User-defined function injection:
- These options can be used to create custom user-defined functions
- --udf-inject Inject custom user-defined functions
- --shared-lib=SHLIB Local path of the shared library
- File system access:
- These options can be used to access the back-end database management
- system underlying file system
- --file-read=FILE.. Read a file from the back-end DBMS file system
- --file-write=FIL.. Write a local file on the back-end DBMS file system
- --file-dest=FILE.. Back-end DBMS absolute filepath to write to
- Operating system access:
- These options can be used to access the back-end database management
- system underlying operating system
- --os-cmd=OSCMD Execute an operating system command
- --os-shell Prompt for an interactive operating system shell
- --os-pwn Prompt for an OOB shell, Meterpreter or VNC
- --os-smbrelay One click prompt for an OOB shell, Meterpreter or VNC
- --os-bof Stored procedure buffer overflow exploitation
- --priv-esc Database process user privilege escalation
- --msf-path=MSFPATH Local path where Metasploit Framework is installed
- --tmp-path=TMPPATH Remote absolute path of temporary files directory
- Windows registry access:
- These options can be used to access the back-end database management
- system Windows registry
- --reg-read Read a Windows registry key value
- --reg-add Write a Windows registry key value data
- --reg-del Delete a Windows registry key value
- --reg-key=REGKEY Windows registry key
- --reg-value=REGVAL Windows registry key value
- --reg-data=REGDATA Windows registry key value data
- --reg-type=REGTYPE Windows registry key value type
- General:
- These options can be used to set some general working parameters
- -s SESSIONFILE Load session from a stored (.sqlite) file
- -t TRAFFICFILE Log all HTTP traffic into a textual file
- --answers=ANSWERS Set predefined answers (e.g. "quit=N,follow=N")
- --base64=BASE64P.. Parameter(s) containing Base64 encoded data
- --batch Never ask for user input, use the default behavior
- --binary-fields=.. Result fields having binary values (e.g. "digest")
- --check-internet Check Internet connection before assessing the target
- --crawl=CRAWLDEPTH Crawl the website starting from the target URL
- --crawl-exclude=.. Regexp to exclude pages from crawling (e.g. "logout")
- --csv-del=CSVDEL Delimiting character used in CSV output (default ",")
- --charset=CHARSET Blind SQL injection charset (e.g. "0123456789abcdef")
- --dump-format=DU.. Format of dumped data (CSV (default), HTML or SQLITE)
- --encoding=ENCOD.. Character encoding used for data retrieval (e.g. GBK)
- --eta Display for each output the estimated time of arrival
- --flush-session Flush session files for current target
- --forms Parse and test forms on target URL
- --fresh-queries Ignore query results stored in session file
- --har=HARFILE Log all HTTP traffic into a HAR file
- --hex Use hex conversion during data retrieval
- --output-dir=OUT.. Custom output directory path
- --parse-errors Parse and display DBMS error messages from responses
- --preprocess=PRE.. Use given script(s) for preprocessing (request)
- --postprocess=PO.. Use given script(s) for postprocessing (response)
- --repair Redump entries having unknown character marker (?)
- --save=SAVECONFIG Save options to a configuration INI file
- --scope=SCOPE Regexp to filter targets from provided proxy log
- --test-filter=TE.. Select tests by payloads and/or titles (e.g. ROW)
- --test-skip=TEST.. Skip tests by payloads and/or titles (e.g. BENCHMARK)
- --update Update sqlmap
- Miscellaneous:
- -z MNEMONICS Use short mnemonics (e.g. "flu,bat,ban,tec=EU")
- --alert=ALERT Run host OS command(s) when SQL injection is found
- --beep Beep on question and/or when SQL injection is found
- --cleanup Clean up the DBMS from sqlmap specific UDF and tables
- --dependencies Check for missing (optional) sqlmap dependencies
- --disable-coloring Disable console output coloring
- --gpage=GOOGLEPAGE Use Google dork results from specified page number
- --identify-waf Make a thorough testing for a WAF/IPS protection
- --list-tampers Display list of available tamper scripts
- --mobile Imitate smartphone through HTTP User-Agent header
- --offline Work in offline mode (only use session data)
- --purge Safely remove all content from sqlmap data directory
- --skip-waf Skip heuristic detection of WAF/IPS protection
- --smart Conduct thorough tests only if positive heuristic(s)
- --sqlmap-shell Prompt for an interactive sqlmap shell
- --tmp-dir=TMPDIR Local directory for storing temporary files
- --web-root=WEBROOT Web server document root directory (e.g. "/var/www")
- --wizard Simple wizard interface for beginner users
- 输出详细程度
- 选项: -v
- 此选项可用于设置输出消息的详细程度。有七个详细级别。默认级别为1,其中显示信息,警告,错误,严重消息和Python回溯(如果发生)。
- 0:仅显示Python回溯,错误和严重消息。
- 1:还显示信息和警告消息。
- 2:还显示调试消息。
- 3:还显示注入的有效载荷。
- 4:还显示HTTP请求。
- 5:还显示HTTP响应的标头。
- 6:还显示HTTP响应的页面内容。
- 进一步了解sqlmap的功能的合理详细程度是2级,主要用于检测阶段和接管功能。如果您想查看工具发送的SQL有效负载,则3级级别是您的最佳选择。当您向开发人员提供潜在的错误报告时,也建议使用此级别,并确保将标准选项发送的流量日志文件与标准输出一起发送-t。为了进一步调试潜在的错误或意外行为,建议您将详细程度设置为4级或更高。应该注意的是,也可以通过使用此选项的较短版本来设置详细程度,其中字母的数量v提供的开关(而不是选项)内部确定详细程度(例如,-v代替-v 2,-vv代替-v 3,-vvv代替-v 4,等等)
- 目标
- 已提供这些选项中的至少一个来设置目标。
- 直接连接到数据库
- 选项: -d
- 针对单个数据库实例运行sqlmap。此选项接受以下形式之一的连接字符串:
- DBMS://USER:PASSWORD@DBMS_IP:DBMS_PORT/DATABASE_NAME (MySQL,Oracle,Microsoft SQL Server,PostgreSQL等)
- DBMS://DATABASE_FILEPATH (SQLite,Microsoft Access,Firebird等)
- 例如:
- $ python sqlmap.py -d "mysql://admin:admin@192.168.21.17:3306/testdb" -f --bann\
- er --dbs --users
- 目标网址
- 选项:-u或--url
- 针对单个目标URL运行sqlmap。此选项需要以下格式的目标URL:
- http(s)://targeturl[:port]/[...]
- 例如:
- $ python sqlmap.py -u "http://www.target.com/vuln.php?id=1" -f --banner --dbs -\
- -users
- 从Burp或WebScarab代理日志中解析目标
- 选项: -l
- 除了提供单个目标URL外,还可以针对通过Burp代理或 WebScarab代理代理的HTTP请求进行测试和注入。此选项需要一个参数,该参数是代理的HTTP请求日志文件。
- 扫描给定文本文件中列出的多个目标
- 选项: -m
- 提供给定批量文件中列出的目标URL的列表,sqlmap将逐个扫描每个URL。
- 作为此选项的参数提供的批量文件的样本内容:
- www.target1.com/vuln1.php?q=foobar
- www.target2.com/vuln2.asp?id=1
- www.target3.com/vuln3/id/1*
- 从文件加载HTTP请求
- 选项: -r
- sqlmap的可能性之一是从文本文件加载原始HTTP请求。这样,您可以跳过许多其他选项的使用(例如,设置Cookie,发布数据等)。
- 作为此选项的参数提供的HTTP请求文件的示例内容:
- POST /vuln.php HTTP/1.1
- Host: www.target.com
- User-Agent: Mozilla/4.0
- id=1
- 请注意,如果请求是通过HTTPS进行的,则可以将其与switch结合使用,--force-ssl以强制SSL连接到443 / tcp。或者,您可以将其附加:443到Host标题值的末尾。
- 从管道输入解析目标地址(即stdin)
- 即使sqlmap已经具有目标爬网的功能,但如果用户对此任务有其他偏好,他仍然可以直接从其他选择的工具(例如waybackurls)中提供目标地址作为管道输入。应当注意,链接将自动从此类内容中进行解析,因此对输入格式没有任何限制。
- 例如:
- waybackurls www.target.com | python sqlmap.py
- 将Google dork结果作为目标地址进行处理
- 选项: -g
- 也可以根据您的Google问题的结果测试并注入GET参数。
- 此选项使sqlmap与搜索引擎协商其会话cookie以便能够执行搜索,然后sqlmap将使用GET参数检索Google dork表达式的Google前100个结果,询问您是否要测试并在每个可能的受影响URL上进行注入。
- 例如:
- $ python sqlmap.py -g "inurl:".php?id=1""
- 从配置INI文件加载选项
- 选项: -c
- 可以从配置INI文件传递用户的选项,例如sqlmap.conf。
- 请注意,如果您从命令行提供其他选项,则在运行sqlmap时会评估这些选项并覆盖配置文件中提供的选项。
复制代码
|
|