sqlmap

重要参考 http://www.kali.org.cn/forum-75-1.html

SQLmap是一款用来检测与利用SQL漏洞的注入神器。开源的自动化SQL注入工具,由Python写成,具有如下特点:

  • 完全支持MySQL、Oracle、PostgreSQL、Microsoft SQL Server、Microsoft Access、IBM DB2、SQLite、Firebird、Sybase、SAP MaxDB、HSQLDB和Informix等多种数据库管理系统。
  • 完全支持布尔型盲注、时间型盲注、基于错误信息的注入、联合查询注入和堆查询注入。
  • 在数据库证书、IP地址、端口和数据库名等条件允许的情况下支持不通过SQL注入点而直接连接数据库。
  • 支持枚举用户、密码、哈希、权限、角色、数据库、数据表和列。
  • 支持自动识别密码哈希格式并通过字典破解密码哈希。
  • 支持完全地下载某个数据库中的某个表,也可以只下载某个表中的某几列,甚至只下载某一列中的部分数据,这完全取决于用户的选择。
  • 支持在数据库管理系统中搜索指定的数据库名、表名或列名
  • 当数据库管理系统是MySQL、PostgreSQL或Microsoft SQL Server时支持下载或上传文件。

当数据库管理系统是MySQL、PostgreSQL或Microsoft SQL Server时支持执行任意命令并回现标准输出。

安装

  • Sqlmap的开源项目,托管在github,最简单的安装方式便是使用git,执行如下命令:
  • git clone https://github.com/sqlmapproject/sqlmap.git
  • 片刻后命令执行完毕,可以看到当前目录中多了一个名为“sqlmap”的目录, 
    该目录中保存着Sqlmap的Python源码、配置文件和文档。 
    由于Python是解释执行的语言,不用编译,所以至此最新版的Sqlmap已经安装完成

输出级别(Output verbosity)

参数:-v

Sqlmap的输出信息按从简到繁共分为7个级别(和葫芦娃一样多),依次为0、1、2、3、4、5和6。使用参数“-v <级别>”来指定某个等级,如使用参数“-v 6”来指定输出级别为6。默认输出级别为1。各个输出级别的描述如下:

0:只显示Python的tracebacks信息、错误信息[ERROR]和关键信息[CRITICAL];

1:同时显示普通信息[INFO]和警告信息[WARNING];

2:同时显示调试信息[DEBUG];

3:同时显示注入使用的攻击荷载;

4:同时显示HTTP请求;

5:同时显示HTTP响应头;

6:同时显示HTTP响应体。

各个级别输出的信息详细到什么程度,还需要自己尝试下,亲眼见到,才会有明确的认识。

使用格式: sqlmap [参数]

参数:

-h, –help
           显示基本的帮助文档

-hh        
          显示高级帮助

–version  
          显示当前版本号

-v
VERBOSE            Verbosity level: 0-6 (default
1)

目标:

至少要提供这些参数中的一个来定义

参数:

-d DIRECT      
    用于连接数据库的连接字符串

-u URL, –url=URL   目标URL (e.g. “http://www.site.com/vuln.php?id=1“)

-l LOGFILE      
   用Burp 或者 WebScarab解析目标代理文日志

-x SITEMAPURL      
远程解析目标网站的路径

-m BULKFILE      
  扫描文件中的多个目标

-r REQUESTFILE    
 从文件中加载http地址

-g GOOGLEDORK      
用谷歌解析目标

-c
CONFIGFILE       从ini的配置文件加载

要求:

这些参数是用来如何连接到目标网站

–method=METHOD
    对给定的HTTP方法(例如把武力使用)

–data=DATA  
      将要发送的数据字符串

–param-del=PARA..
 用于分裂参数值的字符

–cookie=COOKIE
    HTTP Cookie标头值 cooike注入

–cookie-del=COO..
 用于分割饼干值的字符

–load-cookies=L..
 含Netscape / wget cookies文件格式

–drop-set-cookie
  忽略设置的头部信息

–user-agent=AGENT
 HTTP用户代理标头值

–random-agent
     使用随机选择HTTP用户代理标头值

–host=HOST  
      HTTP主机头值

–referer=REFERER
  HTTP Referer报头值

-H HEADER, –hea..  额外的头部信息 (e.g. “X-Forwarded-For: 127.0.0.1″)

–headers=HEADERS
  额外的标题 (e.g. “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证书/私钥文件

–ignore-401
       忽略HTTP 401错误(未授权的)

–proxy=PROXY
      使用代理连接到目标网址

–proxy-cred=PRO..
 代理身份验证凭据(名称:密码)

–proxy-file=PRO..
 从文件中加载代理列表

–ignore-proxy
     忽略系统默认代理设置

–tor  
           使用洋葱路由网络

–tor-port=TORPORT
 设置洋葱路由的代理端口

–tor-type=TORTYPE
 设置Tor代理类型(HTTP、SOCKS4或SOCKS5(默认))

–check-tor  
      查看洋葱路由的正确使用

–delay=DELAY
      每个HTTP请求之间的想应时间

–timeout=TIMEOUT
  等待超时连接(默认30)默认为秒

–retries=RETRIES
  重试时,连接超时(默认3)

–randomize=RPARAM
给定参数的随机变化值(s)

–safe-url=SAFEURL
 在测试过程中经常访问的网址地址

–safe-post=SAFE..
 post数据发送到一个安全的网址

–safe-req=SAFER..
 安全HTTP请求从文件加载

–safe-freq=SAFE..
 一个给定的安全地址的两次访问之间的测试请求

–skip-urlencode
   跳过有效载荷数据的网址编码

–csrf-token=CSR..
 参数用来举行反CSRF令牌

–csrf-url=CSRFURL
 URL地址访问提取防CSRF令牌

–force-ssl  
      使用SSL / HTTPS力

–hpp  
            使用HTTP参数污染的方法

–eval=EVALCODE
    Evaluate provided Python code before the request

(e.g.”import hashlib;id2=hashlib.md5(id).hexdigest()”)

优化参数:

这些选项可用于优化性能sqlmap

-o        
         打开所有的优化开关

–predict-output
   普通查询输出预测

–keep-alive
       使用持久HTTP(S)连接

–null-connection
  检索页面长度没有实际的HTTP响应体

–threads=THREADS   最大并发HTTP请求数(S)(默认为1)

注入:

这些选项可以用来指定要测试的参数,提供自定义注入有效载荷和随意篡改剧本

-p TESTPARAMETER    可检验参数(s)

–skip=SKIP  
      对给定参数的跳过测试(s)

–skip-static
      跳过不出现动态的测试参数

–dbms=DBMS  
      强制后端数据库管理系统到这个值

–dbms-cred=DBMS..
 数据库管理系统认证证书(用户:密码)

–os=OS  
          强制后端的数据库管理系统操作系统到这个值

–invalid-bignum
   使用大数字无效值

–invalid-logical
  使用逻辑操作的无效值

–invalid-string
   使用随机字符串无效值

–no-cast  
        关闭有效载荷模块

–no-escape  
      关闭字符串逃逸机制

–prefix=PREFIX
    注入有效载荷前缀字符串

–suffix=SUFFIX
    注入有效载荷后缀字符串

–tamper=TAMPER     用于篡改注入数据的给定脚本

检测:

这些选项可用于自定义检测阶段

–level=LEVEL
      要执行的测试水平(1-5,默认为1)

–risk=RISK  
      要执行的测试的风险(1-3,默认为1)

–string=STRING
    当查询评估为真时的字符串匹配

–not-string=NOT..
 当查询评估为假时的字符串匹配

–regexp=REGEXP
    正则表达式匹配查询时进行真正的

–code=CODE  
     HTTP代码时匹配的查询表达式为真

–text-only  
      仅基于文本内容的页面比较

–titles            仅根据他们的标题进行比较

技术:

这些选项可以用来调整特定SQL注入测试技术

–technique=TECH
   SQL注入技术的使用(默认“beustq”)

–time-sec=TIMESEC
 延迟数据库管理系统响应的秒数(默认为5)

–union-cols=UCOLS
 为联合查询的SQL注入测试列范围

–union-char=UCHAR
 字符使用bruteforcing列数

–union-from=UFROM
 表使用从联合查询的SQL注入的一部分

–dns-domain=DNS..
 使用的域名DNS泄露攻击

–second-order=S..  搜索的第二级响应结果页面的网址

指纹:

-f,
–fingerprint  执行广泛的数据库管理系统版本指纹

枚举参数:

这些选项可以用来枚举后端数据库管理系统信息、结构和数据中包含的平台.此外,你可以运行你自己的SQL语句

-a, –all
          Retrieve everything

-b, –banner
       检索数据库标志

–current-user
     检索数据库管理系统当前用户

–current-db
       检索数据库

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

–is-dba  
         检测当前用户是不是数据库的管理员

–users  
          枚举数据库用户

–passwords  
     枚举数据库用户密码的哈希值

–privileges
       枚举数据库管理系统用户权限

–roles  
         枚举数据库管理系统用户角色

–dbs  
            枚举数据库

–tables  
         枚举数据库管理系统中的数据库表

–columns  
        枚举数据库管理中的数据库表列

–schema  
        枚举数据库架构

–count  
          搜索表的条目数

–dump  
           扒裤衩子

–dump-all  
       扒数据库数毛毛

–search  
         搜索数据库列和数据库名称

–comments  
       检测数据库的信息

-D DB        
      枚举数据库

-T TBL        
     枚举数据库的表

-C COL        
     枚举数据库表的列

-X EXCLUDECOL      
不枚举的数据库管理系统数据库表

-U USER      
      数据库用户枚举

–exclude-sysdbs    Exclude DBMS system databases when
enumerating tables

–pivot-column=P..   主数据库表名称

–where=DUMPWHERE   Use WHERE condition while table dumping

–start=LIMITSTART  查询输出第一个输出条目的检索

–stop=LIMITSTOP    查询最后输出项的检索

–first=FIRSTCHAR   查询第一个输出字字符检索

–last=LASTCHAR     查询最后输出字字符检索

–sql-query=QUERY   要执行的SQL语句

–sql-shell        提示一个SQL
shell

–sql-file=SQLFILE  从给定的文件执行SQL语句(S)

暴力破解:

这些选项可以用来运行蛮力测试

–common-tables     检查常见表的存在性

–common-columns    检查公共列的存在

用户定义函数注入:

这些选项可用于创建自定义的用户定义函数

–udf-inject        注入用户自定义的函数

–shared-lib=SHLIB  共享库的本地路径

 文件系统访问:

这些选项可用于访问后台数据库管理系统的底层文件系统

–file-read=RFILE   从后台的数据库管理系统文件系统中读取一个文件

–file-write=WFILE  在后台的数据库管理系统文件系统上写一个本地文件

–file-dest=DFILE   后台数据库的绝对路径写

操作系统访问:

这些选项可用于访问后台数据库管理系统底层操作系统

–os-cmd=OSCMD      执行操作系统命令

–os-shell          用于交互式操作系统shell的提示

–os-pwn            显示OOB shell, Meterpreter or或者VNC

–os-smbrelay       One click prompt for an OOB shell,
Meterpreter or VNC

–os-bof            存储过程缓冲区溢出开发

–priv-esc          数据库进程用户权限升级

–msf-path=MSFPATH  本地路径在metasploit框架安装

–tmp-path=TMPPATH  临时文件目录的远程绝对路径

Windows注册表访问:

这些选项可用于访问后台数据库管理系统的注册表

–reg-read          读取一个窗口注册表项

–reg-add           写一个窗口注册表项的数据

–reg-del           删除一个注册表项

–reg-key=REGKEY    Windows注册表

–reg-value=REGVAL  注册表项的关键值

–reg-data=REGDATA  注册表键值数据

–reg-type=REGTYPE  注册表键值类型

常规:

这些选项可以用来设置一些常规的工作参数

-s SESSIONFILE
     从存储加载会话(sqlite)文件

-t TRAFFICFILE
     Log all HTTP traffic into a textual file

–batch             Never ask for user
input, use the default behaviour

–binary-fields=..  Result fields having binary values (e.g. “digest”)

–charset=CHARSET   用于数据检索的力字符编码

–crawl=CRAWLDEPTH  从目标网址开始抓取网站

–crawl-exclude=..  正则表达式从爬行排除页 (e.g. “logout”)

–csv-del=CSVDEL    限定使用CSV输出特性 (default “,”)

–dump-format=DU..  转储数据格式 (CSV
(default), HTML or SQLITE)

–eta               显示为每个输出估计的到达时间

–flush-session     当前目标的刷新会话文件

–forms           目标网址的解析和测试形式

–fresh-queries     忽略存储在会话文件中的查询结果

–hex              使用数据库管理系统的十六进制函数(S)进行数据检索

–output-dir=OUT..  自定义输出目录路径

–parse-errors      解析和显示响应中的数据库管理系统错误消息

–save=SAVECONFIG   保存选项来配置INI文件

–scope=SCOPE       正则表达式过滤提供代理日志目标

–test-filter=TE..  选择测试的有效载荷和/或头文件(e.g. ROW)

–test-skip=TEST..  跳过试验载荷和/或标题 (e.g. BENCHMARK)

–update           更新sqlmap

杂项:

-z MNEMONICS  
     短期记忆(e.g. “flu,bat,ban,tec=EU”)

–alert=ALERT       运行主机操作系统命令(s)时,SQL注入是发现

–answers=ANSWERS   漏洞答案集(e.g. “quit=N,follow=N”)

–beep              当有注入点被发现的时候报警

–cleanup           清理数据库从sqlmap具体UDF和表

–dependencies      检查没有的(非核心)sqlmap依赖包

–disable-coloring  禁用控制台输出着色

–gpage=GOOGLEPAGE 使用谷歌这一结果从指定的页码

–identify-waf      使一个WAF/IPS / IDS保护全面测试

–mobile           模仿智能手机通过HTTP用户代理标头

–offline           在脱机模式下工作(只使用会话数据)

–page-rank         显示网页排名(PR)为谷歌这一结果

–purge-output      安全地删除输出目录中的所有内容

–skip-waf         跳过WAF/IPS / IDS保护启发式检测

–smart             只有积极的启发式(S)进行彻底的测试

–sqlmap-shell      提示一个互动的sqlmap
shell

–tmp-dir=TMPDIR    用于存储临时文件的本地目录

–wizard           为初学者用户提供简单的向导界面

SQLmap是一款用来检测与利用SQL漏洞的注入神器。的更多相关文章

  1. SQL注入神器———Sqlmap!

    Sqlmap 开源,python编写 支持5种SQL注入检测技术: 1.基于布尔的注入检测 2.基于时间的注入检测 3.基于错误的注入检测 4.基于UNION联合查询的检测 5.基于堆叠查询的检测 支 ...

  2. 『安全工具』注入神器SQLMAP

    Pic by Baidu 0x 00 前言 正是SQLMAP这种神器的存在,SQL注入简直Easy到根本停不下来.... PS:国内类似软件也有阿D,明小子,挖掘机,当你用过他们之后你才会发现SQLM ...

  3. c# 检测是否有Sql非法字符

    /// <summary> /// 检测是否有Sql危险字符 /// </summary> /// <param name="str">要判断字 ...

  4. Sql性能检测工具:Sql server profiler和优化工具:Database Engine Tuning Advisor

    原文:Sql性能检测工具:Sql server profiler和优化工具:Database Engine Tuning Advisor 一.工具概要     数据库应用系统性能低下,需要对其进行优化 ...

  5. NumPy 会自动检测并利用 GPU 吗?

    PyTorch 官网 60 分钟入门教程在介绍什么是 PyTorch 时有一句话:A replacement for NumPy to use the power of GPUs PyTorch 是 ...

  6. XSSer:自动化XSS漏洞检测及利用工具

    转载自FreeBuf.COM XSS是一种非常常见的漏洞类型,它的影响非常的广泛并且很容易的就能被检测到. 攻击者可以在未经验证的情况下,将不受信任的JavaScript片段插入到你的应用程序中,然后 ...

  7. CORS漏洞利用检测和利用方式

    CORS全称Cross-Origin Resource Sharing, 跨域资源共享,是HTML5的一个新特性,已被所有浏览器支持,不同于古老的jsonp只能get请求. 检测方式: 1.curl访 ...

  8. RubyCritic:一款不错的检测代码质量工具

    关注代码质量是高效开发必须要做的一件事,那么在 Ruby 开发的过程中,是否有什么好的代码质量检测工具呢?下面由 Ruby 工程师路英瑞介绍一下 RubyCritic--一款还不错的代码质量检测工具. ...

  9. 【Tools】三款笔记本电脑硬件检测工具-官网下载

    一.CPU-Z 下载地址: https://www.cpuid.com/softwares/cpu-z.html 描述: CPU-Z已经是大名鼎鼎了.这里就不多说了.  二.Cinebench   下 ...

随机推荐

  1. vue项目 dev正常 build发生错误

    提取错误信息: 这个文件有错误,检查并修改即可 经过排除检查错误地方如下:多了个逗号

  2. 【HTML5校企公益课】第三天

        1.上午2D.旋转变色的... 基本思路就是先写静态画面然后添加动画. <!--告诉浏览器该文件为网页格式--> <html> <!--网页的头部标签--> ...

  3. Django学习笔记之模板渲染、模板语言、simple_tag、母版子版、静态配置文件

    一.首先我们用PyCharm来创建一个Django项目 终端命令:django-admin startproject sitename 图形创建:   这样一个Django项目就创建完成了,上面可以看 ...

  4. Boot-Repair&usb_repair

    https://help.ubuntu.com/community/Boot-Repair https://askubuntu.com/questions/500647/unable-to-mount ...

  5. 并发-HashMap和HashTable源码分析

    HashMap和HashTable源码分析 参考: https://blog.csdn.net/luanlouis/article/details/41576373 http://www.cnblog ...

  6. 调用webservices中 枚举类型没有被序列化问题

    引用服务后,代理类为自动为所有枚举类型生成了一个Bool类型相关字段,命名方式:比如枚举类名为“PayType”,生成的相关字段为“PayTypeSpecified”,此字段有何作用? PayType ...

  7. 一次穿墙渗透测试,利用IPC跨域

    Shell是怎么拿下的我们就不纠结了. 我们来上传菜刀一句话,来仔细分析分析. 先来看看内网环境把. 很高兴的是现在管理员在线.可以抓去文明密码. 但是很悲催的又是.服务器不支持走TCP协议.HTTP ...

  8. MD5加密算法的java实现

    package other; import java.security.MessageDigest;import java.security.NoSuchAlgorithmException;/* * ...

  9. Memcached replace 命令

    Memcached replace 命令用于替换已存在的 key(键) 的 value(数据值). 如果 key 不存在,则替换失败,并且您将获得响应 NOT_STORED. 语法: replace ...

  10. 关于EventBus3.0使用,你看这篇就够了

    作为一枚Android开发者,关于EventBus相信应该都听说过.要是用过就请忽略本文,本文讲得比较基础. 要是没用过,建议你花两分钟看看. 目前EventBus最新版本是3.0,本demo基于3. ...