关于sqlmap使用手册

2018-06-18 00:39:57来源:未知 阅读 ()

新老客户大回馈,云服务器低至5折

sqlmap 使用手册

  • 官方wiki
  • Github

sqlmap也是渗透中常用的一个注入工具,可以用来检测sql注入漏洞。

功能与作用

  • 完全支持MySQL,Oracle,PostgreSQL,Microsoft SQL Server,Microsoft Access,IBM DB2,SQLite,Firebird,Sybase,SAP MaxDB和HSQLDB数据库管理系统。
  • 完全支持五种SQL注入技术:基于布尔值的盲注,基于时间的盲注,基于错误注入,联合查询注入和堆查询注入。
  • 支持通过提供DBMS凭据,IP地址,端口和数据库名称直接连接到数据库,而无需通过SQL注入。
  • 可以提供单个目标URL,从 Burp 代理或 WebScarab 代理请求日志文件获取目标列表,从文本文件获取整个HTTP请求,或通过向sqlmap提供sqlmap查询Google dork来获取目标列表搜索引擎并解析其结果页面。您还可以定义基于正则表达式的作用域,用于标识要测试的解析地址。
  • 测试提供了GET参数,POST参数,HTTP Cookie头值,HTTP用户代理头值和HTTP Referer头值来识别和利用SQL注入漏洞。还可以指定要测试的特定参数的逗号分隔列表。
  • 指定并发 HTTP(S) 请求(多线程)的最大数量的选项,以加快盲SQL注入技术。反之亦然,还可以指定在每个 HTTP(S) 请求之间保持的秒数。其他优化开关也加快了开发。
  • HTTP Cookie头字符串支持,当web应用程序需要基于cookie的身份验证,并且您有这样的数据或在您只是想测试和利用SQL注入这样的头值有用。您还可以指定始终对Cookie进行URL编码。
  • 自动处理来自应用程序的HTTP Set-Cookie头,如果会话过期,则重新建立会话。还支持测试和利用这些值。反之亦然,你也可以强制忽略任何Set-Cookie头。
  • HTTP协议基本,Digest,NTLM和证书认证支持。
  • HTTP(S)代理支持将请求传递到目标应用程序,该目标应用程序也与HTTPS请求和已验证的代理服务器一起工作。
  • 伪造HTTP Referer头值和由用户指定或从文本文件中随机选择的HTTP User-Agent标头值的选项。
  • 支持输出消息的详细程度:七个级别。
  • 支持从目标URL解析HTML表单,并针对这些页面伪造 HTTP(S) 请求,以针对漏洞测试表单参数。
  • 在用户的开关和特征方面的粒度和灵活性。
  • 支持每个查询的实时更新的估计到达时间,为用户提供检索查询输出所需的时间概览。
  • 在获取数据时自动将会话(查询及其输出,即使是部分检索)保存在文本文件上,并通过解析会话文件来恢复注入。
  • 支持从配置INI文件读取选项,而不是每次指定命令行上的参数。还支持基于提供的命令行生成配置文件。
  • 支持在本地SQLite 3数据库上复制后端数据库表结构和条目。
  • 支持从subversion存储库更新到最新的开发版本。
  • 支持解析HTTP(S)响应并向用户显示任何DBMS错误消息。
  • 与其他IT安全开源项目整合,Metasploit和w3af。

如何使用?

Usage(用法): python sqlmap.py [options]
Options(选项):
  -h, --help            显示基础帮助信息并退出
  -hh                   显示更详细的帮助信息并退出
  --version             显示版本号并退出
  -v VERBOSE            详细级别:0 - 6 (默认1)
  Target(目标):
    以下至少需要设置其中一个选项,设置目标URL
    -d DIRECT           使用连接字符串连接到数据库
    -u URL, --url=URL   目标 URL(例如 "http://www.site.com/vuln.php?id=1")
    -l LOGFILE          从 Burp 或 WebScarab 代理的日志中解析目标
    -x SITEMAPURL       从远程 sitemap(.xml) 中解析目标
    -m BULKFILE         从文本文件中扫描多个目标
    -r REQUESTFILE      从一个文件中载入 HTTP 请求
    -g GOOGLEDORK       处理 Google dork 的结果作为目标URL
    -c CONFIGFILE       从 INI 配置文件中加载选项
  Request(请求):
    这些选项可以用来指定如何连接到目标URL
    --method=METHOD     使用给定的 HTTP 访问方法(例如 PUT)
    --data=DATA         通过 POST 发送的数据字符串
    --param-del=PARA..  用于分割参数值的字符
    --cookie=COOKIE     HTTP Cookie头
    --cookie-del=COO..  用于分割 cookie 值的字符
    --load-cookies=L..  含 Netscape/wget 的 cookie 文件格式
    --drop-set-cookie   忽略响应的 Set-Cookie 头信息
    --user-agent=AGENT  指定 HTTP User - Agent头
    --random-agent      使用随机选定的HTTP User - Agent头
    --host=HOST         指定 HTTP Host 头
    --referer=REFERER   指定 HTTP Referer 头
    -H HEADER, --hea..  指定其他头信息(例如 "X-Forwarded-For: 127.0.0.1")
    --headers=HEADERS   指定其他多条头信息,可换行(例如 "Accept-Language: fr\nETag: 123")
    --auth-type=AUTH..  HTTP身份验证类型(Basic, Digest, NTLM or PKI)
    --auth-cred=AUTH..  HTTP身份验证凭据(name:password)
    --auth-file=AUTH..  HTTP身份验证 PEM cert/private 文件
    --ignore-401        忽略 HTTP 401(Unauthorized) 错误
    --ignore-proxy      忽略系统默认的HTTP代理
    --ignore-redirects  忽略重定向
    --ignore-timeouts   忽略连接超时
    --proxy=PROXY       使用代理连接到目标
    --proxy-cred=PRO..  代理身份验证凭据(name:password
    --proxy-file=PRO..  从文件加载代理列表
    --tor               使用 Tor 匿名网络
    --tor-port=TORPORT  设置 Tor 代理端口
    --tor-type=TORTYPE  设置 Tor 代理类型(HTTP, SOCKS4 or SOCKS5 (默认))
    --check-tor         检查 Tor 正确使用
    --delay=DELAY       在每个HTTP请求之间的延迟时间,单位为秒
    --timeout=TIMEOUT   等待连接超时的时间(默认为30秒)
    --retries=RETRIES   连接超时后重新连接的时间(默认3秒)
    --randomize=RPARAM  随机改变给定参数的值
    --safe-url=SAFEURL  测试期间经常访问的 URL 地址
    --safe-post=SAFE..  将数据发送到安全 URL
    --safe-req=SAFER..  从文件加载安全 Http 请求
    --safe-freq=SAFE..  两次访问之间测试请求,给出安全的URL
    --skip-urlencode    跳过载荷数据的 URL 编码
    --csrf-token=CSR..  设置 csrf token 标记名称
    --csrf-url=CSRFURL  获取 csrf token URL 地址
    --force-ssl         强制使用 SSL/HTTPS
    --hpp               打开 hpp 参数污染
    --eval=EVALCODE     运行 Python 代码来重新设置或添加值(例如
                        "import hashlib;id2=hashlib.md5(id).hexdigest()")
  Optimization(优化):
    这些选项可用于优化 sqlmap 性能
    -o                  开启所有优化
    --predict-output    预测常见查询输出
    --keep-alive        使用持久 HTTP(s) 连接
    --null-connection   没有实际的 HTTP 响应体检索页面长度
    --threads=THREADS   最大HTTP (s) 请求数(默认1)
  Injection(注入):
	这些选线可以用来指定要测试的参数,提供自定义载荷和选项干预脚本
	
    -p TESTPARAMETER    可测试参数
    --skip=SKIP         跳过给定参数的测试
    --skip-static       跳过不是动态参数的测试
    --param-exclude=..  使用正则表达式从测试中排除参数(例如“ses”)
    --dbms=DBMS         将后端 DBMS 强制为此值
    --dbms-cred=DBMS..  DBMS认证凭证 (user:password)
    --os=OS             将后端DBMS操作系统强制为此值
    --invalid-bignum    使用大数字使值无效
    --invalid-logical   使用逻辑操作使值无效
    --invalid-string    使用随机字符串使值无效
    --no-cast           关闭载荷casting机制
    --no-escape         关闭字符串转义机制
    --prefix=PREFIX     注入载荷的前缀字符串
    --suffix=SUFFIX     注入载荷的后缀字符串
    --tamper=TAMPER     使用给定的脚本来干预注入的数据
  Detection(检测):
    这些选项可用于自定义检测阶段
    --level=LEVEL       执行测试级别 (1-5, 默认 1)
    --risk=RISK         执行测试的风险 (1-3, 默认 1)
    --string=STRING     当查询求值为True时匹配的字符串
    --not-string=NOT..  当查询求值为False时匹配的字符串
    --regexp=REGEXP     当查询求值为True时匹配的正则表达式
    --code=CODE         当查询求值为True时匹配的HTTP代码
    --text-only         仅根据文字内容比较网页
    --titles            仅根据其标题比较网页
  Techniques(技术):
    这些选项可用于调整特定SQL注入技术的测试
    --technique=TECH    SQL注入技术使用(默认“BEUSTQ”)
    --time-sec=TIMESEC  DBMS响应的延迟时间(默认为5秒)
    --union-cols=UCOLS  定列范围用于测试UNION查询注入
    --union-char=UCHAR  用于暴力猜解列数的字符
    --union-from=UFROM  要在UNION查询SQL注入的FROM部分使用的表
    --dns-domain=DNS..  用于DNS外发攻击的域名
    --second-order=S..  产生的网页网址搜索二级响应
  Fingerprint(指纹):
    -f, --fingerprint   执行扩展的DBMS版本指纹
  Enumeration(枚举):
    这些选项可用于枚举后端数据库
    管理系统信息,表中包含的结构和数据。 此外,您可以运行您自己的SQL语句
    -a, --all           检索所有
    -b, --banner        检索 DBMS banner
    --current-user      检索 DBMS 当前用户
    --current-db        检索 DBMS 当前数据库
    --hostname          检索 DBMS 服务器 hostname
    --is-dba            检测 DBMS 当前用户是否为DBA
    --users             枚举 DBMS 用户
    --passwords         枚举 DBMS 用户密码散列
    --privileges        枚举 DBMS 用户权限
    --roles             枚举 DBMS 用户角色
    --dbs               枚举 DBMS 数据库
    --tables            枚举 DBMS 数据库表
    --columns           枚举 DBMS 数据库表列
    --schema            枚举 DBMS schema
    --count             检索表的条目数
    --dump              导出 DBMS 数据库表条目
    --dump-all          导出所有 DBMS 数据库表条目
    --search            搜索列,表,数据库名称
    --comments          检索 DBMS 注释
    -D DB               DBMS 数据库进行枚举
    -T TBL              DBMS 数据库表进行枚举
    -C COL              DBMS 数据库表列进行枚举
    -X EXCLUDECOL       DBMS 数据库表列不进行枚举
    -U USER             DBMS 用户进行枚举
    --exclude-sysdbs    枚举表时排除DBMS系统数据库
    --pivot-column=P..  数据透视列名称
    --where=DUMPWHERE   表导出时使用 WHERE 条件
    --start=LIMITSTART  查询要检索的输出条目开始数
    --stop=LIMITSTOP    查询要检索的输出条目结束数
    --first=FIRSTCHAR   查询从某个字符检索开始
    --last=LASTCHAR     查询从某个字符检索结束
    --sql-query=QUERY   执行的 SQL 语句
    --sql-shell         提示交互式SQL Shell
    --sql-file=SQLFILE  从给定文件执行SQL语句
  Brute force(强力):
    这些选项可用于运行强力检查
    --common-tables     检查公用表的存在
    --common-columns    检查公共列的存在
  User-defined function injection(用户定义的函数注入):
    这些选项可用于创建用户定义的函数
    --udf-inject        注入用户定义函数
    --shared-lib=SHLIB  共享库的本地路径
  File system access(文件系统访问):
    这些选项可用于访问后端数据库管理系统底层文件系统
    --file-read=RFILE   从后端 DBMS 文件系统读取文件
    --file-write=WFILE  在后端 DBMS 文件系统上写入本地文件
    --file-dest=DFILE   写入后端DBMS绝对文件路径
  Operating system access(操作系统访问):
    这些选项可用于访问后端数据库管理系统底层操作系统
    --os-cmd=OSCMD      执行操作系统命令
    --os-shell          提示交互式操作系统shell
    --os-pwn            提示OOB shell,Meterpreter或VNC
    --os-smbrelay       一个OOB shell,Meterpreter或VNC的单击提示
    --os-bof            存储过程缓冲区溢出利用
    --priv-esc          数据库处理用户权限升级
    --msf-path=MSFPATH  安装 Metasploit 框架的本地路径
    --tmp-path=TMPPATH  远程临时目录的绝对路径
  Windows registry access(Windows 注册表访问):
    这些选项可用于访问后端数据库管理系统Windows注册表
    --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注册表项值类型
  General(常规):
    这些选项可用于设置一些常规工作参数
    
    -s SESSIONFILE      从存储(.sqlite)文件加载会话
    -t TRAFFICFILE      将所有HTTP流量记录到文本文件中
    --batch             不询问用户,使用默认行为
    --binary-fields=..  具有二进制值的结果字段(例如 "digest")
    --charset=CHARSET   强制使用用于数据检索的字符编码
    --crawl=CRAWLDEPTH  从目标网址开始抓取网站
    --crawl-exclude=..  使用正则表达式排除抓取的网站 (例如 "logout")
    --csv-del=CSVDEL    分隔CSV输出中使用的字符 (default ",")
    --dump-format=DU..  导出数据的格式 (CSV (默认), HTML or SQLITE)
    --eta               显示每个输出的预计时间
    --flush-session     刷新当前目标的会话文件
    --forms             在目标网址上解析和测试表单
    --fresh-queries     忽略存储在会话文件中的查询结果
    --hex               使用DBMS hex函数进行数据检索
    --output-dir=OUT..  自定义输出目录路径
    --parse-errors      解析和显示响应中的DBMS错误消息
    --save=SAVECONFIG   将选项保存到配置INI文件
    --scope=SCOPE       正则表达式过滤从提供的代理日志的目标
    --test-filter=TE..  根据载荷或标题选择测试 (例如 ROW)
    --test-skip=TEST..  根据载荷或标题跳过测试 (例如 BENCHMARK)
    --update            更新 sqlmap
  Miscellaneous(其他):
    -z MNEMONICS        使用简语 (例如 "flu,bat,ban,tec=EU")
    --alert=ALERT       在找到 SQL 注入时运行主机操作系统命令
    --answers=ANSWERS   设置问题答案 (例如 "quit=N,follow=N")
    --beep              在找到 SQL 注入时询问
    --cleanup           从 sqlmap 特定的 UDF 和表清理 DBMS
    --dependencies      检查是否缺少(非核心)sqlmap依赖关系
    --disable-coloring  禁用控制台输出着色
    --gpage=GOOGLEPAGE  使用特定页码的Google dork结果
    --identify-waf      对 WAF/IPS/IDS 保护进行全面测试
    --mobile            通过HTTP User-Agent标头模仿智能手机
    --offline           在离线模式下工作(仅使用会话数据)
    --purge-output      安全地从输出目录中删除所有内容
    --skip-waf          跳过启发式检测 WAF/IPS/IDS 保护
    --smart             只有在正启发式时才进行彻底测试
    --sqlmap-shell      提示交互式sqlmap shell
    --tmp-dir=TMPDIR    用于导出临时文件的本地目录
    --wizard            为初学者用户提供简单的向导界面

 

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:[linux]centos7下解决yum install mysql-server没有可用包

下一篇:mysql5.7安装