zoukankan      html  css  js  c++  java
  • 关于sqlmap使用手册

    sqlmap 使用手册

    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
    ETag: 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            为初学者用户提供简单的向导界面
    
  • 相关阅读:
    Vue项目根据不同运行环境打包项目
    [Vue CLI 3] @vue/cli-plugin-eslint 源码分析
    [Vue CLI 3] 插件开发中的 genCacheConfig 细节研究
    [Vue CLI 3] 配置解析之 parallel
    [Vue CLI 3] 配置 webpack-bundle-analyzer 插件
    [Vue CLI 3] 插件开发之 registerCommand 到底做了什么
    [Vue CLI 3] Uglify 相关的应用和设计
    [Vue CLI 3] vue inspect 的源码设计实现
    [Vue CLI 3] 配置解析之 indexPath
    [Vue CLI 3] 配置解析之 css.extract
  • 原文地址:https://www.cnblogs.com/phpworld/p/8074597.html
Copyright © 2011-2022 走看看