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. 获取数据库中的数据## 获取数据表名称