美文网首页
SQLMap入门

SQLMap入门

作者: 冷煖自知 | 来源:发表于2020-02-18 15:49 被阅读0次

    安装

    特点

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

    所谓SQL注入,就是通过把SQL命令插入到web表单提交或输入域名或页面请求的查询字符串, 最终达到欺骗服务器执行恶意的SQL命令。具体来说,它是利用现有应用程序,将SQL命令注入 到后台数据库引擎执行的能力,它可以通过在web表单中输入SQL语句得到一个存在安全漏洞 的网站上的数据库,而不是按照设计者意图去执行SQL语句

    常用命令

    参数-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响应体
    参数-b,--banner检索数据库信息

    大多数的数据库系统都有一个函数可以返回数据库的版本号,通常这个函数是version()或者变量@@version这主要取决与是什么数据库。

    参数--dbs 列举数据库

    当前用户有权限读取包含所有数据库列表信息的表中的时候,即可列出所有的数据库。
    列举数据库表

    参数-d 直连数据库
    • 服务型数据库-MySQL,Oracle
      python3 sqlmap.py -d "mysql://用户名:密码@地址:端口/数据库名字" -f --banner --dbs --users
    python sqlmap.py -d "mysql://root:toor@localhost:3306/mysql" -f --banner --dbs --users
    
    • 文件型数据库-SQLite
    参数-u,--url 指定目标URL获取

    URL格式:http(s)://targetur\[:port\]/

    python sqlmap.py -u "http://127.0.0.1:3306?id=1"
    
    参数-x 读取xml站点地图

    为便于搜索引擎收录,许多网站专门为搜索引擎生成了xml格式的站点地图

    参数-m 扫描文本文件中给定的多个目标

    从多行文本格式文件读取多个目标,对多个目标进行探测
    sqlmap -m target.txt

    www.target1.com/vuln1.php?q=foobar
    www.target2.com/vuln2.asp?id=1
    www.target3.com/vuln3/id/1*
    
    参数-r 从文件加载HTTP请求

    可以将一个HTTP请求保存在文件中,然后使用参数
    sqlmap -m target.txt

    POST /vuln.php HTTP/1.1
    Host: www.target.com
    User-Agent: Mozilla/4.0
    
    id=1
    
    参数-l 日志文件分析

    可以直接把Burp proxy或者WebScarab proxy中的日志直接倒出来交给sqlmap来一个一个检测是否有注入。
    从文本中获取多个目标扫描

    参数-c 配置文件读取

    从配置文件sqlmap.conf中读取目标探测

    参数-g Google搜索引擎结果作为目标url处理

    sqlmap可以测试注入Google的搜索结果中的GET参数(只获取前100个结果)。

    python sqlmap.py -g "inurl:\".php?id=1\""
    
    参数--method 强制使用给定的HTTP请求方法

    一般来说,Sqlmap能自动判断出是使用GET方法还是POST方法,但在某些情况下需要的可能是PUT 等很少见的方法,此时就需要用参数--method来指定方法。

    python sqlmap.py -u "http://127.0.0.1:3306" --method=GET
    
    参数--data 表单提交数据

    默认情况下,用于执行HTTP请求的HTTP方法是GET,但是可以通过提供在POST请求中发送的数据隐式 的将其改为POST。这些数据作为参数,被用于SQL注入检测

    python sqlmap.py -u "http://127.0.0.1:3306" --method=POST --data="username=123&password=456"
    
    设置cookie

    当你使用--cookie参数时,当返回一个Set-Cookie头的时候,sqlmap会询问你用哪个cookie来继续接下来的请求。当--level的参数设定为2或者2以上的时候,sqlmap会尝试注入Cookie参数。

    --cookie #设置cookie
    --cookie-del # 设置cookie分隔符
    --load-cookies # 通过带有cookie的Netscape/wget格式的文件进行探测注入
    --drop-set-cookie # 如果响应中使用set-cookie设置了新的cookie,sqlmap会在之后的探测中使用它,可以用这个参数忽略新cookie。
    
    --cookie="PHPSESSID=a8d127efc693b45"
    --cookie-del="&"
    

    相关文章

      网友评论

          本文标题:SQLMap入门

          本文链接:https://www.haomeiwen.com/subject/jzygfhtx.html