SQLMAP命令详解

  • 格式:pdf
  • 大小:158.07 KB
  • 文档页数:7

SQLMAP命令详解

Options

--version:显⽰当前sqlmap的版本号

-h:显⽰帮助信息

-hh:显⽰详细的帮助信息

-v VERBOSE:详细级别,VERBOSE为数字,默认为1

Target

-d DIRECT:直接连接到数据库

-u URL 或--url=URL:⽬标地址(URL)

-l LOGFILE:从Burp或WebScarab代理的⽇志中解析⽬标

-x SITEMAPURL:从⼀个XML⽂件中解析⽬标

-m BULKFILE:扫描⽂本⽂件中的多个⽬标

-r REQUESTFILE:从⽂件中导⼊HTTP请求(通常⽤于检查POST请求中的SQL注⼊)

-g GOOGLEDORK:处理Google Dork的结果作为⽬标URL

-c CONFIGFILE:从ini⽂件中加载选项

Request

--method=MEHOTD:强制指定HTTP⽅法(如PUT)

--data=DATA:指定POST请求的参数

--param-del=PARAMDEL:指定参数的分隔符(如:&)

--cookie=COOKIE:指定HTTP请求的Cookie

--cookie-del=COOKIEDEL:指定Cookie的分隔符(如:分号;)

--load-cookies=LOADCOOKIES:指定以Netscape或wget且包含cookie的⽂件

--drop-set-cookie:忽略返回包中的Set-Cookie字段

--user-agent:指定HTTP头部的user-agent值

--random-agent:设置随机的HTTP User-Agent

--host=HOST:指定HTTP头部的host值

--referer=REFERER:指定HTTP头部中的referer值

-H=HEADER:指定HTTP其他头部信息

--headers=HEADERS:指定HTTP其他头部信息

--auth-type=AUTHTYPE:指定HTTP的认证类型(Basic,Digest,NTLM,PKI)

--auth-cred=AUTHCRED:指定HTTP认证凭证(name:password)

--auth-file=AUTHFILE:指定HTTP认证PEM认证/私钥⽂件

--ignore-code=IGNORECODE:忽略指定的HTTP错误码(如:401)

--ignore-proxy:忽略系统默认代理

--ignore-redirects:忽略重定向尝试

--ignore-timeouts:忽略连接超时

--proxy=PROXY:指定代理地址

--proxy-cred=PROXYCRED:指定代理认证凭据(name:password)

--proxy-file=PROXYFILE:从指定⽂件中加载代理数据

--tor:使⽤tor匿名⽹络(通常需要提⾼默认的响应时长,且需要指定Tor的代理地址)

--tor-port=TORPORT:设置TOR代理的端⼝(修改默认端⼝)

--tor-type=TORTYPE:设置TOR代理的类型(HTTP,SOCKS4,SOCKS5默认)

--check-tor:检查tor能否正常使⽤

--delay=DELAY:设置每个HTTP请求的间隔时间(单位:秒)

--timeout=TIMEOUT:设置超时连接前等待的时间(单位:秒)

--retries=RETRIES:设置连接超时重新尝试的次数(默认为3)

--randomize=RPARAM:随机更改给定参数的值

--safe-url=SAFEURL:指定在测试期间频繁访问的URL--safe-post=SAFEPOST:POST数据发送到安全URL

--safe-req=SAFEREQ:从⽂件中加载HTTP请求

--safe-freq=SAFEFREQ:在两次访问安全⽹址之间的测试请求

--skip-urlencode:跳过经过URL编码的payload数据

--csrf-token=CSRFTOKEN:指定CSRF-TOKEN值

--csrf-url=CSRFURL:指定提取CSRF-TOKEN的URL值

--force-ssl:强制使⽤SSL协议

--hpp:使⽤HTTP参数pollution的⽅法

--eval:评估请求之前提供Python代码

Optimization

-o:开启所有优化开关

--predict-output:预测常见的查询输出

--keep-alive:使⽤持久的HTTP(S)连接

--null-connection:从没有实际的HTTP响应体中检索页⾯长度

--threads=THREADS:设置请求的并发数

Injection

-p TESTPARAMETER:指定需要测试的参数

--skip=SKIP:跳过指定参数的测试

--skip-static:跳过⾮动态参数的测试

--param-exclude=PARAMEXCLUDE:使⽤正则排除要测试的参数

--dbms=DBMS:强制指定数据库管理系统的类型

--dbms-cred=DBMSCRED:指定DBMS认证凭证(name:password)

--os=OS:指定后端DBMS的操作系统

--invalid-logical:使⽤⼤数字使值⽆效

--invalid-string:使⽤随机字符串使值⽆效

no-cast:关闭有效载荷

--no-escape:关闭字符串转义机制

--prefix=PREFIX:注⼊payload字符串前缀

--suffix=SUFFIX:注⼊payload字符串后缀

--tamper=TAMPER:使⽤给定脚本篡改注⼊数据

Detection

--level=LEVEL:指定执⾏检测的等级(1-5,默认为1)

--risk=RISK:指定执⾏检测的风险(1-5,默认为1)

--string=STRING:查询有效时在页⾯匹配字符串

--not-string=NOTSTRING:查询⽆效时在页⾯匹配字符串

--regexp=REGEXP:查询有效时在页⾯匹配正则表达式

--code=CODE:查询有效时匹配的HTTP返回码

--text-only:基于⽂本内容⽐较⽹页

--titles:基于标题⽐较⽹页

Techniques

--technique=TECH:指定SQL注⼊的技术(默认为BEUST)

--time-sec=TIMESEC:DBMS响应的延迟时间

--union-cols=UCOLS:指定UNION查询注⼊使⽤的列

--union-char=UCHAR:指定暴⼒猜解列数的字符

--union-from=UFROM:指定UNION查询注⼊的FROM部分使⽤的表

--dns-domain=DNSDOMAIN:域名⽤于DNS漏出攻击

Enumeration

-a或--all:检索⼀切-b,--banner:检索数据库管理系统的标识

--current-user:检索数据库管理系统的当前⽤户名

--current-db:检索DBMS的当前数据库名称

--hostname:检索数据库服务器的主机名

--is-dba:检测DBMS当前⽤户是否为DBA

--users:枚举DBMS的⽤户名

--passwords:枚举DBMS⽤户密码哈希

--privileges:枚举DBMS⽤户的权限

--roles:枚举DBMS⽤户的⾓⾊

--dbs:枚举DBMS所有的数据库名称

--tables:枚举DBMS数据库中所有的表

--columns:枚举DBMS数据库表中所有的列名

--schema:枚举数据库架构

--count:检索表的记录数

--dump:转储DBMS的数据库中的表项

--dump-all:转储DBMS的数据库中的所有表项

--search:搜索列、表、数据库名称

--commnets:检索数据库的comments

-D DB:指定要枚举的数据库名称

-T TBL:指定要枚举的数据表名称

-C COL:指定要枚举的数据库列名

-X EXCLUDECOL:指定不要枚举的数据库列名

-U USER:指定要进⾏枚举的数据库⽤户名

--exclude-sysdbs:枚举表时排除系统数据库

--where=DUMPWHERE:使⽤WHERE条件表转储

--start=LIMITSTART:第⼀个查询输出进⼊检索

--stop=LIMITSTOP:最后查询的输出进⼊检索

--first=FIRSTCHAR:第⼀个查询输出字的字符检索

--last=LASTCHAR:最后查询的输出字字符检索

--sql-query=QUERY:要执⾏的SQL语句

--sql-file=SQLFILE:从给定⽂件中执⾏SQL语句1. HTTP Get请求## 指定参数和Cookiesqlmap -u "http://xxx.com/1.php?id=1" --cookies="COOKIE" -p id## 忽略参数,指定分隔符sqlmap -u "http://xxx.com/1.php?id=1&username=jack" --param-del=& --skip=username2. HTTP Post请求## 直接从⽂件导⼊sqlmap -r 1.txt -p id## ⾃定义sqlmap -u "http://xxx.com/1.php" --data="id=1&username=jack" --cookie="COOKIE" -p id⼀般的注⼊步骤

1. 检查是否存在注⼊sqlmap -r 1.txt -p id2. 简单的信息获取## 获取数据库版本信息sqlmap -r 1.txt -p id --banner## 获取当前数据库名称sqlmap -r 1.txt -p id --current-db## 获取数据库中所有数据库名称sqlmap -r 1.txt -p id --dbs## 获取数据库当前⽤户名sqlmap -r 1.txt -p id --current-user## 获取数据库所有⽤户名sqlmap -r 1.txt -p id --users## 检查数据库当前⽤户是否为DBAsqlmap -r 1.txt -p id --is-dba3. 获取数据库中的数据## 获取数据表名称