请选择 进入手机版 | 继续访问电脑版

落羽黑客论坛

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 335|回复: 5

sqlmap开源渗透测试工具简要教程系列【6】

[复制链接]

66

主题

68

帖子

226

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
226
发表于 2021-2-10 10:58:00 | 显示全部楼层 |阅读模式
  1. 用法
  2. Usage: python sqlmap.py [options]

  3. Options:
  4.   -h, --help            Show basic help message and exit
  5.   -hh                   Show advanced help message and exit
  6.   --version             Show program's version number and exit
  7.   -v VERBOSE            Verbosity level: 0-6 (default 1)

  8.   Target:
  9.     At least one of these options has to be provided to define the
  10.     target(s)

  11.     -d DIRECT           Connection string for direct database connection
  12.     -u URL, --url=URL   Target URL (e.g. "http://www.site.com/vuln.php?id=1")
  13.     -l LOGFILE          Parse target(s) from Burp or WebScarab proxy log file
  14.     -m BULKFILE         Scan multiple targets given in a textual file
  15.     -r REQUESTFILE      Load HTTP request from a file
  16.     -g GOOGLEDORK       Process Google dork results as target URLs
  17.     -c CONFIGFILE       Load options from a configuration INI file

  18.   Request:
  19.     These options can be used to specify how to connect to the target URL

  20.     --method=METHOD     Force usage of given HTTP method (e.g. PUT)
  21.     --data=DATA         Data string to be sent through POST (e.g. "id=1")
  22.     --param-del=PARA..  Character used for splitting parameter values (e.g. &)
  23.     --cookie=COOKIE     HTTP Cookie header value (e.g. "PHPSESSID=a8d127e..")
  24.     --cookie-del=COO..  Character used for splitting cookie values (e.g. ;)
  25.     --live-cookies=L..  Live cookies file used for loading up-to-date values
  26.     --load-cookies=L..  File containing cookies in Netscape/wget format
  27.     --drop-set-cookie   Ignore Set-Cookie header from response
  28.     --user-agent=AGENT  HTTP User-Agent header value
  29.     --random-agent      Use randomly selected HTTP User-Agent header value
  30.     --host=HOST         HTTP Host header value
  31.     --referer=REFERER   HTTP Referer header value
  32.     -H HEADER, --hea..  Extra header (e.g. "X-Forwarded-For: 127.0.0.1")
  33.     --headers=HEADERS   Extra headers (e.g. "Accept-Language: fr\nETag: 123")
  34.     --auth-type=AUTH..  HTTP authentication type (Basic, Digest, NTLM or PKI)
  35.     --auth-cred=AUTH..  HTTP authentication credentials (name:password)
  36.     --auth-file=AUTH..  HTTP authentication PEM cert/private key file
  37.     --ignore-code=IG..  Ignore (problematic) HTTP error code (e.g. 401)
  38.     --ignore-proxy      Ignore system default proxy settings
  39.     --ignore-redirects  Ignore redirection attempts
  40.     --ignore-timeouts   Ignore connection timeouts
  41.     --proxy=PROXY       Use a proxy to connect to the target URL
  42.     --proxy-cred=PRO..  Proxy authentication credentials (name:password)
  43.     --proxy-file=PRO..  Load proxy list from a file
  44.     --tor               Use Tor anonymity network
  45.     --tor-port=TORPORT  Set Tor proxy port other than default
  46.     --tor-type=TORTYPE  Set Tor proxy type (HTTP, SOCKS4 or SOCKS5 (default))
  47.     --check-tor         Check to see if Tor is used properly
  48.     --delay=DELAY       Delay in seconds between each HTTP request
  49.     --timeout=TIMEOUT   Seconds to wait before timeout connection (default 30)
  50.     --retries=RETRIES   Retries when the connection timeouts (default 3)
  51.     --randomize=RPARAM  Randomly change value for given parameter(s)
  52.     --safe-url=SAFEURL  URL address to visit frequently during testing
  53.     --safe-post=SAFE..  POST data to send to a safe URL
  54.     --safe-req=SAFER..  Load safe HTTP request from a file
  55.     --safe-freq=SAFE..  Test requests between two visits to a given safe URL
  56.     --skip-urlencode    Skip URL encoding of payload data
  57.     --csrf-token=CSR..  Parameter used to hold anti-CSRF token
  58.     --csrf-url=CSRFURL  URL address to visit for extraction of anti-CSRF token
  59.     --force-ssl         Force usage of SSL/HTTPS
  60.     --hpp               Use HTTP parameter pollution method
  61.     --eval=EVALCODE     Evaluate provided Python code before the request (e.g.
  62.                         "import hashlib;id2=hashlib.md5(id).hexdigest()")

  63.   Optimization:
  64.     These options can be used to optimize the performance of sqlmap

  65.     -o                  Turn on all optimization switches
  66.     --predict-output    Predict common queries output
  67.     --keep-alive        Use persistent HTTP(s) connections
  68.     --null-connection   Retrieve page length without actual HTTP response body
  69.     --threads=THREADS   Max number of concurrent HTTP(s) requests (default 1)

  70.   Injection:
  71.     These options can be used to specify which parameters to test for,
  72.     provide custom injection payloads and optional tampering scripts

  73.     -p TESTPARAMETER    Testable parameter(s)
  74.     --skip=SKIP         Skip testing for given parameter(s)
  75.     --skip-static       Skip testing parameters that not appear to be dynamic
  76.     --param-exclude=..  Regexp to exclude parameters from testing (e.g. "ses")
  77.     --dbms=DBMS         Force back-end DBMS to provided value
  78.     --dbms-cred=DBMS..  DBMS authentication credentials (user:password)
  79.     --os=OS             Force back-end DBMS operating system to provided value
  80.     --invalid-bignum    Use big numbers for invalidating values
  81.     --invalid-logical   Use logical operations for invalidating values
  82.     --invalid-string    Use random strings for invalidating values
  83.     --no-cast           Turn off payload casting mechanism
  84.     --no-escape         Turn off string escaping mechanism
  85.     --prefix=PREFIX     Injection payload prefix string
  86.     --suffix=SUFFIX     Injection payload suffix string
  87.     --tamper=TAMPER     Use given script(s) for tampering injection data

  88.   Detection:
  89.     These options can be used to customize the detection phase

  90.     --level=LEVEL       Level of tests to perform (1-5, default 1)
  91.     --risk=RISK         Risk of tests to perform (1-3, default 1)
  92.     --string=STRING     String to match when query is evaluated to True
  93.     --not-string=NOT..  String to match when query is evaluated to False
  94.     --regexp=REGEXP     Regexp to match when query is evaluated to True
  95.     --code=CODE         HTTP code to match when query is evaluated to True
  96.     --text-only         Compare pages based only on the textual content
  97.     --titles            Compare pages based only on their titles

  98.   Techniques:
  99.     These options can be used to tweak testing of specific SQL injection
  100.     techniques

  101.     --technique=TECH    SQL injection techniques to use (default "BEUSTQ")
  102.     --time-sec=TIMESEC  Seconds to delay the DBMS response (default 5)
  103.     --union-cols=UCOLS  Range of columns to test for UNION query SQL injection
  104.     --union-char=UCHAR  Character to use for bruteforcing number of columns
  105.     --union-from=UFROM  Table to use in FROM part of UNION query SQL injection
  106.     --dns-domain=DNS..  Domain name used for DNS exfiltration attack
  107.     --second-url=SEC..  Resulting page URL searched for second-order response
  108.     --second-req=SEC..  Load second-order HTTP request from file

  109.   Fingerprint:
  110.     -f, --fingerprint   Perform an extensive DBMS version fingerprint

  111.   Enumeration:
  112.     These options can be used to enumerate the back-end database
  113.     management system information, structure and data contained in the
  114.     tables. Moreover you can run your own SQL statements

  115.     -a, --all           Retrieve everything
  116.     -b, --banner        Retrieve DBMS banner
  117.     --current-user      Retrieve DBMS current user
  118.     --current-db        Retrieve DBMS current database
  119.     --hostname          Retrieve DBMS server hostname
  120.     --is-dba            Detect if the DBMS current user is DBA
  121.     --users             Enumerate DBMS users
  122.     --passwords         Enumerate DBMS users password hashes
  123.     --privileges        Enumerate DBMS users privileges
  124.     --roles             Enumerate DBMS users roles
  125.     --dbs               Enumerate DBMS databases
  126.     --tables            Enumerate DBMS database tables
  127.     --columns           Enumerate DBMS database table columns
  128.     --schema            Enumerate DBMS schema
  129.     --count             Retrieve number of entries for table(s)
  130.     --dump              Dump DBMS database table entries
  131.     --dump-all          Dump all DBMS databases tables entries
  132.     --search            Search column(s), table(s) and/or database name(s)
  133.     --comments          Check for DBMS comments during enumeration
  134.     -D DB               DBMS database to enumerate
  135.     -T TBL              DBMS database table(s) to enumerate
  136.     -C COL              DBMS database table column(s) to enumerate
  137.     -X EXCLUDE          DBMS database identifier(s) to not enumerate
  138.     -U USER             DBMS user to enumerate
  139.     --exclude-sysdbs    Exclude DBMS system databases when enumerating tables
  140.     --pivot-column=P..  Pivot column name
  141.     --where=DUMPWHERE   Use WHERE condition while table dumping
  142.     --start=LIMITSTART  First dump table entry to retrieve
  143.     --stop=LIMITSTOP    Last dump table entry to retrieve
  144.     --first=FIRSTCHAR   First query output word character to retrieve
  145.     --last=LASTCHAR     Last query output word character to retrieve
  146.     --sql-query=QUERY   SQL statement to be executed
  147.     --sql-shell         Prompt for an interactive SQL shell
  148.     --sql-file=SQLFILE  Execute SQL statements from given file(s)

  149.   Brute force:
  150.     These options can be used to run brute force checks

  151.     --common-tables     Check existence of common tables
  152.     --common-columns    Check existence of common columns

  153.   User-defined function injection:
  154.     These options can be used to create custom user-defined functions

  155.     --udf-inject        Inject custom user-defined functions
  156.     --shared-lib=SHLIB  Local path of the shared library

  157.   File system access:
  158.     These options can be used to access the back-end database management
  159.     system underlying file system

  160.     --file-read=FILE..  Read a file from the back-end DBMS file system
  161.     --file-write=FIL..  Write a local file on the back-end DBMS file system
  162.     --file-dest=FILE..  Back-end DBMS absolute filepath to write to

  163.   Operating system access:
  164.     These options can be used to access the back-end database management
  165.     system underlying operating system

  166.     --os-cmd=OSCMD      Execute an operating system command
  167.     --os-shell          Prompt for an interactive operating system shell
  168.     --os-pwn            Prompt for an OOB shell, Meterpreter or VNC
  169.     --os-smbrelay       One click prompt for an OOB shell, Meterpreter or VNC
  170.     --os-bof            Stored procedure buffer overflow exploitation
  171.     --priv-esc          Database process user privilege escalation
  172.     --msf-path=MSFPATH  Local path where Metasploit Framework is installed
  173.     --tmp-path=TMPPATH  Remote absolute path of temporary files directory

  174.   Windows registry access:
  175.     These options can be used to access the back-end database management
  176.     system Windows registry

  177.     --reg-read          Read a Windows registry key value
  178.     --reg-add           Write a Windows registry key value data
  179.     --reg-del           Delete a Windows registry key value
  180.     --reg-key=REGKEY    Windows registry key
  181.     --reg-value=REGVAL  Windows registry key value
  182.     --reg-data=REGDATA  Windows registry key value data
  183.     --reg-type=REGTYPE  Windows registry key value type

  184.   General:
  185.     These options can be used to set some general working parameters

  186.     -s SESSIONFILE      Load session from a stored (.sqlite) file
  187.     -t TRAFFICFILE      Log all HTTP traffic into a textual file
  188.     --answers=ANSWERS   Set predefined answers (e.g. "quit=N,follow=N")
  189.     --base64=BASE64P..  Parameter(s) containing Base64 encoded data
  190.     --batch             Never ask for user input, use the default behavior
  191.     --binary-fields=..  Result fields having binary values (e.g. "digest")
  192.     --check-internet    Check Internet connection before assessing the target
  193.     --crawl=CRAWLDEPTH  Crawl the website starting from the target URL
  194.     --crawl-exclude=..  Regexp to exclude pages from crawling (e.g. "logout")
  195.     --csv-del=CSVDEL    Delimiting character used in CSV output (default ",")
  196.     --charset=CHARSET   Blind SQL injection charset (e.g. "0123456789abcdef")
  197.     --dump-format=DU..  Format of dumped data (CSV (default), HTML or SQLITE)
  198.     --encoding=ENCOD..  Character encoding used for data retrieval (e.g. GBK)
  199.     --eta               Display for each output the estimated time of arrival
  200.     --flush-session     Flush session files for current target
  201.     --forms             Parse and test forms on target URL
  202.     --fresh-queries     Ignore query results stored in session file
  203.     --har=HARFILE       Log all HTTP traffic into a HAR file
  204.     --hex               Use hex conversion during data retrieval
  205.     --output-dir=OUT..  Custom output directory path
  206.     --parse-errors      Parse and display DBMS error messages from responses
  207.     --preprocess=PRE..  Use given script(s) for preprocessing (request)
  208.     --postprocess=PO..  Use given script(s) for postprocessing (response)
  209.     --repair            Redump entries having unknown character marker (?)
  210.     --save=SAVECONFIG   Save options to a configuration INI file
  211.     --scope=SCOPE       Regexp to filter targets from provided proxy log
  212.     --test-filter=TE..  Select tests by payloads and/or titles (e.g. ROW)
  213.     --test-skip=TEST..  Skip tests by payloads and/or titles (e.g. BENCHMARK)
  214.     --update            Update sqlmap

  215.   Miscellaneous:
  216.     -z MNEMONICS        Use short mnemonics (e.g. "flu,bat,ban,tec=EU")
  217.     --alert=ALERT       Run host OS command(s) when SQL injection is found
  218.     --beep              Beep on question and/or when SQL injection is found
  219.     --cleanup           Clean up the DBMS from sqlmap specific UDF and tables
  220.     --dependencies      Check for missing (optional) sqlmap dependencies
  221.     --disable-coloring  Disable console output coloring
  222.     --gpage=GOOGLEPAGE  Use Google dork results from specified page number
  223.     --identify-waf      Make a thorough testing for a WAF/IPS protection
  224.     --list-tampers      Display list of available tamper scripts
  225.     --mobile            Imitate smartphone through HTTP User-Agent header
  226.     --offline           Work in offline mode (only use session data)
  227.     --purge             Safely remove all content from sqlmap data directory
  228.     --skip-waf          Skip heuristic detection of WAF/IPS protection
  229.     --smart             Conduct thorough tests only if positive heuristic(s)
  230.     --sqlmap-shell      Prompt for an interactive sqlmap shell
  231.     --tmp-dir=TMPDIR    Local directory for storing temporary files
  232.     --web-root=WEBROOT  Web server document root directory (e.g. "/var/www")
  233.     --wizard            Simple wizard interface for beginner users
  234. 输出详细程度
  235. 选项: -v

  236. 此选项可用于设置输出消息的详细程度。有七个详细级别。默认级别为1,其中显示信息,警告,错误,严重消息和Python回溯(如果发生)。

  237. 0:仅显示Python回溯,错误和严重消息。
  238. 1:还显示信息和警告消息。
  239. 2:还显示调试消息。
  240. 3:还显示注入的有效载荷。
  241. 4:还显示HTTP请求。
  242. 5:还显示HTTP响应的标头。
  243. 6:还显示HTTP响应的页面内容。
  244. 进一步了解sqlmap的功能的合理详细程度是2级,主要用于检测阶段和接管功能。如果您想查看工具发送的SQL有效负载,则3级级别是您的最佳选择。当您向开发人员提供潜在的错误报告时,也建议使用此级别,并确保将标准选项发送的流量日志文件与标准输出一起发送-t。为了进一步调试潜在的错误或意外行为,建议您将详细程度设置为4级或更高。应该注意的是,也可以通过使用此选项的较短版本来设置详细程度,其中字母的数量v提供的开关(而不是选项)内部确定详细程度(例如,-v代替-v 2,-vv代替-v 3,-vvv代替-v 4,等等)

  245. 目标
  246. 已提供这些选项中的至少一个来设置目标。

  247. 直接连接到数据库
  248. 选项: -d

  249. 针对单个数据库实例运行sqlmap。此选项接受以下形式之一的连接字符串:

  250. DBMS://USER:PASSWORD@DBMS_IP:DBMS_PORT/DATABASE_NAME (MySQL,Oracle,Microsoft SQL Server,PostgreSQL等)
  251. DBMS://DATABASE_FILEPATH (SQLite,Microsoft Access,Firebird等)
  252. 例如:

  253. $ python sqlmap.py -d "mysql://admin:admin@192.168.21.17:3306/testdb" -f --bann\
  254. er --dbs --users
  255. 目标网址
  256. 选项:-u或--url

  257. 针对单个目标URL运行sqlmap。此选项需要以下格式的目标URL:

  258. http(s)://targeturl[:port]/[...]

  259. 例如:

  260. $ python sqlmap.py -u "http://www.target.com/vuln.php?id=1" -f --banner --dbs -\
  261. -users
  262. 从Burp或WebScarab代理日志中解析目标
  263. 选项: -l

  264. 除了提供单个目标URL外,还可以针对通过Burp代理或 WebScarab代理代理的HTTP请求进行测试和注入。此选项需要一个参数,该参数是代理的HTTP请求日志文件。

  265. 扫描给定文本文件中列出的多个目标
  266. 选项: -m

  267. 提供给定批量文件中列出的目标URL的列表,sqlmap将逐个扫描每个URL。

  268. 作为此选项的参数提供的批量文件的样本内容:

  269. www.target1.com/vuln1.php?q=foobar
  270. www.target2.com/vuln2.asp?id=1
  271. www.target3.com/vuln3/id/1*
  272. 从文件加载HTTP请求
  273. 选项: -r

  274. sqlmap的可能性之一是从文本文件加载原始HTTP请求。这样,您可以跳过许多其他选项的使用(例如,设置Cookie,发布数据等)。

  275. 作为此选项的参数提供的HTTP请求文件的示例内容:

  276. POST /vuln.php HTTP/1.1
  277. Host: www.target.com
  278. User-Agent: Mozilla/4.0

  279. id=1
  280. 请注意,如果请求是通过HTTPS进行的,则可以将其与switch结合使用,--force-ssl以强制SSL连接到443 / tcp。或者,您可以将其附加:443到Host标题值的末尾。

  281. 从管道输入解析目标地址(即stdin)
  282. 即使sqlmap已经具有目标爬网的功能,但如果用户对此任务有其他偏好,他仍然可以直接从其他选择的工具(例如waybackurls)中提供目标地址作为管道输入。应当注意,链接将自动从此类内容中进行解析,因此对输入格式没有任何限制。

  283. 例如:

  284. waybackurls www.target.com | python sqlmap.py
  285. 将Google dork结果作为目标地址进行处理
  286. 选项: -g

  287. 也可以根据您的Google问题的结果测试并注入GET参数。

  288. 此选项使sqlmap与搜索引擎协商其会话cookie以便能够执行搜索,然后sqlmap将使用GET参数检索Google dork表达式的Google前100个结果,询问您是否要测试并在每个可能的受影响URL上进行注入。

  289. 例如:

  290. $ python sqlmap.py -g "inurl:".php?id=1""
  291. 从配置INI文件加载选项
  292. 选项: -c

  293. 可以从配置INI文件传递用户的选项,例如sqlmap.conf。

  294. 请注意,如果您从命令行提供其他选项,则在运行sqlmap时会评估这些选项并覆盖配置文件中提供的选项。
复制代码


回复

使用道具 举报

0

主题

2

帖子

26

积分

新手上路

Rank: 1

积分
26
发表于 2021-2-10 10:58:12 | 显示全部楼层
牛逼!!
回复

使用道具 举报

0

主题

5

帖子

39

积分

新手上路

Rank: 1

积分
39
发表于 2021-2-10 10:58:24 | 显示全部楼层
你好棒!!
回复

使用道具 举报

0

主题

2

帖子

30

积分

新手上路

Rank: 1

积分
30
发表于 2021-2-10 10:58:39 | 显示全部楼层
非常好!!
回复

使用道具 举报

0

主题

2

帖子

34

积分

新手上路

Rank: 1

积分
34
发表于 2021-2-10 10:58:44 | 显示全部楼层
你历害!!
回复

使用道具 举报

0

主题

1

帖子

33

积分

新手上路

Rank: 1

积分
33
发表于 2021-2-10 10:58:55 | 显示全部楼层
不错呀!!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|落羽黑客论坛

GMT+8, 2021-6-16 22:56 , Processed in 0.048543 second(s), 19 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表