SQLMAP使用

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

SQLMAP是什么

SQLMAP是一个开源的自动化SQL注入工具,主要功能是扫描、发现并且利用给定的URL的SQL注入漏洞。

SQLMAP可以对URL做什么?

  • 判断可以注入的参数
  • 判断可以使用哪一种SQL注入技术进行注入
  • 判断识别数据库的类型
  • 根据用户的选择,从数据库中读取数据

SQLMAP支持的注入技术

  • 基于布尔的盲注:根据返回页面判断条件真假注入
  • 基于时间的盲注:不能根据页面返回内容判断任何信息,使用条件查询语句查看时间延迟语句是否执行来判断
  • 基于报错的注入:页面会返回错误信息,或者把注入的语句的结果直接返回在页面中
  • 基于联合查询的注入:使用union进行注入
  • 堆查询注入:同时执行多条语句的注入

SQLMAP检测注入漏洞流程:

  1. 网站连通性检测:检测目标的连接状态。
  2. WAF探测:检测网站是否受WAF保护。
  3. 网页稳定性检测:检测网页是否稳定。
  4. 参数动态性检测:检测参数是否有动态性。
  5. 启发式注入检测:探测该参数点是否是动态的、是否为可能的注入点。

SQLMAP的误报检测机制

误报检测: SQLMAP的布尔盲注、时间盲注方式判断注入点时,存在误报的可能。为防止误报,SQLMap引入了误报检测机制。
两个基础检测算法:

  • 页面相似度对比技术(在各种注入技术中大量使用)∶在SQLMap检测的整个过程中,会有一个原始响应的定义,指的是在网站连通性检测的过程中,如果网站成功响应,则把该响应定义为原始响应(包括状态码、HTTP响应头、HTTP响应体)。一个HTTP请求成功响应后,将与原始响应进行对比,得出对比结果,算法输出为True表示当前响应与原始响应相似,算法输出为False表示当前响应与原始响应不相似。
  • 高斯分布识别响应机制:(在UNION注入和时间盲注过程中使用)︰网站的响应是基于逻辑的,如果一组请求,网站的处理逻辑相同,那么响应几乎也是相同的。如果某一个响应出现了变化,则可以认为网站处理逻辑变了,这种逻辑的变化,可能正是因为注入成功了。

SQLMAP基本使用

常见用法

  1. -u参数(直接输入目标的URL)
    语法:sqlmap -u “www.test.com/index.php?id=1”;
    验证过程:判断可以注入的参数、判断可以使用哪种SQL注入技术来注入、识别出所有存在的注入类型、尝试判断数据库版本,开发语言,数据库系统。
    sqlmap -u http://192.168.0.1/page.php?id=10 --current-db //爆当前库
    sqlmap -u http://192.168.0.110/page.php?id=10 -D 数据库名 --tables//爆表名
    sqlmap -u http://192.168.0.1/page.php?id=10 -D 数据库名 -T表名 --columns//爆字段
    sqlmap -u http://192.168.0.1/page.php?id=10 -D 数据库名 -T 表名 -C 字段名1,字段名2,字段名3…(互相用逗号隔并) --dump//显示数据
    现在以爆库名为例:
    SQLMAP使用
    在第一次输入的时候,会出现这么一个选项:
    SQLMAP使用
    直接勾选第一个Y第二个n即可。

  2. -r参数 (从文本文件之中获得http请求)
    语法:sqlmap -r /usr/1.txt
    注意:在使用该命令时,必须指明1.txt文件所在的绝对路径
    其余的与-u参数基本一致

  3. -m参数(从文件中取出保存的url进行检测)
    语法:sqlmap -m /usr/2.txt
    注意:使用的时候,必须指明2.txt所在的绝对路径

常见参数

枚举参数:
参数:-b,–banner…列出版本号
参数: --dbs…列出所有数据库的库名
参数:–current-db…列出当前使用的数据库库名
参数:–tables…列出数据库中的表列
参数:–columns…出数据表中的字段
参数:–dump…转储数据库表项,查询字段值
参数: --users…列出所有管理用户
参数: --passwords…列出并破解数据库用户的hash
参数: --privileges…列出数据库管理员权限
请求参数:
参数:–method…指定使用的http方法
参数: --data…把数据以POST方式提交
参数:–param-del …GET或POST的数据用&以外的其他字符分割参数: --cookie,–load-cookies,–drop-set-cookie设置cookie
参数: --referer…伪造HTTP中的Referer头
参数: --user-agent…自定义HTTP中的User-Agent头
参数: --headers…增加额外的http头,不同的头使用“\n”分隔
参数:–timeout…设置超时时间
参数: --retries…设置重试次数
检测参数:
参数:-v…显示等级,共有7个等级,为0时只显示python错误以及严重的信息,为1时(默认)同时显示基本信息和警告信息,为2时同时显示debug信息,为3时同时显示注入的payload,为4时同时显示HTTP请求,为5时同时显示HTTP响应头,为6时同时显示HTTP响应页面。
参数: --risk…风险等级,共有4个等级
参数: -p,–skip…手动用-p参数设置想要测试的参数,–skip设置跳过的参数
参数: --flush-session…清空SQLMAP缓存的会话信息,因为SQLMAP在第一次检测完之后会产生缓存,在后续过程中就会变得比较快了。
注入技术参数:
参数: --technique…指定sqlmap使用的探测技术,B表示布尔盲注,T表示时间盲注(延迟注入),E表示报错注入,U表示联合查询注入,S表示堆查询注入参数: --time-sec设定延迟注入的时间(默认为5秒)
参数: --union-cols…设定UNION查询字段数
参数: --union-char…设定UNION查询时使用的字符
参数: --second-order…设置二次注入的URL
参数: --tamper…使用sqlmap自带的tamper或者自己写的tamper来混淆payload,通常用来绕过WAF和IPS。

tamper参数

tamper脚本是SQLMAP中用于绕过waf或应对网站过滤逻辑的脚本。SQLMAP自带了一些tamper脚本,可以在tamper目录(Kali系统下默认为/usr/share/sqlmap/tamper)下查看它们。用户也可以根据已有的tamper脚本来编写自己的tamper脚本(绕过逻辑)。
绕过逻辑又有以下几种方式:文章来源地址https://www.toymoban.com/news/detail-407148.html

  1. 过滤等号:将等号变为like
    输入:select * from users where id=1
    输出:select * from users where id like 1
  2. 替换字符、过滤单引号
    输入: “1” and ‘1’=‘1’
    输出: “1” and %00%271%00%27=%00%271"
  3. url编码转换
    输入:select field from table
    输出:%53%45%4c%45%43%54%20%46%49%45%4c%44%20%46%52%4f%4d%20%54%41%42%4c%45
    转换规则就是:先把字符转换为ASCII码,再转变成十六进制。
  4. unicode编码绕过
    输入:SELECT%20FIELD%20FROM TABLE
    输出:%u0053%u0045%u004c%u0045%u0043%u0054%u0020%uO046%u0049%u0045%u004c%u0044%u0020%u0046…
    unicode编码就是以%u开头,然后后面是唯一对应的一个数字,都转化为unicode编码。

操作系统权限参数

  1. –os-cmd执行操作系统命令
  2. –os-shell交互式的操作系统的shell

文件读写参数

  1. –file-read读取文件
  2. –file-write写入文件
  3. –file-dest指明写入文件的绝对路径

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

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

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

相关文章

  • 什么是Selenium?使用Selenium进行自动化测试

    什么是 Selenium?   Selenium 是一种开源工具,用于在 Web 浏览器上执行自动化测试(使用任何 Web 浏览器进行 Web 应用程序测试)。   等等,先别激动,让我再次重申一下,Selenium 仅可以测试Web应用程序。我们既不能使用 Selenium 测试任何桌面(软件)应用程序,也不能测试

    2024年02月13日
    浏览(29)
  • 什么是Selenium?如何使用Selenium进行自动化测试?

      Selenium 是一种开源工具,用于在 Web 浏览器上执行自动化测试(使用任何 Web 浏览器进行 Web 应用程序测试)。   等等,先别激动,让我再次重申一下,Selenium 仅可以测试Web应用程序。我们既不能使用 Selenium 测试任何桌面(软件)应用程序,也不能测试任何移动应用程

    2024年02月02日
    浏览(31)
  • 自动化用例编写思路 (使用pytest编写一个测试脚本)

    目录 一,明确测试对象 二,编写测试用例 构造请求数据 封装测试代码 断言设置 三,执行脚本获取测试结果 四,总结 经过之前的学习铺垫,我们尝试着利用pytest框架编写一条接口自动化测试用例,来厘清接口自动化用例编写的思路。 我们在百度搜索天气查询,会出现如下

    2024年02月16日
    浏览(45)
  • 使用robot+selenium创建一个UI自动化测试用例

    新建项目并安装robotframework 在pycharm-插件,输入robot搜索插件 选择Robot Framework Language Server或者Hyper RobotFramework Support安装 新建test.robot文件编写测试用例test.robot robot用例文件通常包括4个头部分:Settings, Variables, Test Cases, 和 Keywords. 不区分大小写 Settings: 1) 导入 测试库, 导入资

    2024年02月20日
    浏览(31)
  • 手机自动化测试工具Auto.js学习使用(附一个自动刷抖音类短视频的demo)

    Auto.js Pro自动化工作流JavaScript IDE,这个IDE是安装在手机上的,书写JavaScript IDE代码的,同时也是可以运行,和打包JavaScript 程序。 Auto.js官网 官网直接下载auto.js,安装即可,安装后花48开会员 搜索安装如下插件 手机电脑要确保连接在同一个wifi网络 手机的auto.js确保打开如下功

    2024年02月09日
    浏览(47)
  • 自动化测试及典型开源的自动化测试工具

    目录 前言: 自动化测试 自动化测试的意义 手工测试的局限性 自动化测试带来的好处 自动化测试的前提条件 自动化测试的方法 自动化测试的不足 自动化测试的应用方向 典型开源的自动化测试工具 自动化测试是一种使用软件工具和脚本来执行测试任务的方法,以取代手动

    2024年02月13日
    浏览(46)
  • 开源自动化测试框架介绍

    框架在精而不在多,毕竟还是得以我们测试工程师平常用的最多的为基准。精通以下7个框架,应该能满足你工作中的基本需求了。 https://junit.org/junit5/ Junit是一个面向Java编程语言的单元测试框架。 单元测试:针对最小的功能单元编写测试代码。Java程序最小的功能单元是方法

    2024年02月12日
    浏览(29)
  • Gradle 自动化构建开源工具

    Gradle是一个基于Apache Ant和Apache Maven概念的项目自动化构建开源工具。 面向Java应用为主。当前其支持的语言C++、Java、Groovy、Kotlin、Scala和Swift,计划未来将支持更多的语言。 1、gradle官网下载:https://gradle.org/releases/ 2、解压下载Gradle包,配置环境变量 新建系统环境 GRADLE_HOME,

    2023年04月22日
    浏览(27)
  • 分享8款开源的自动化测试框架

    在如今开源的时代,我们就不要再闭门造车了,热烈的拥抱开源吧!本文针对性能测试、Web UI 测试、API 测试、数据库测试、接口测试、单元测试等方面,为大家整理了github或码云上优秀的自动化测试开源项目,希望能给大家带来一点帮助。 1、项目名称:基于Jmeter实现的在线

    2024年02月05日
    浏览(41)
  • 【Vue3-Flask-BS架构Web应用】实践笔记1-使用一个bat脚本自动化完整部署环境

    近年来,Web开发已经成为计算机科学领域中最热门和多产的领域之一。Python和Vue.js是两个备受欢迎的工具,用于构建现代Web应用程序。在本教程中,我们将探索如何使用这两个工具来创建一个完整的Web项目。我们将完成从安装Python和Vue.js到项目部署的整个过程。 首先,确保你

    2024年02月07日
    浏览(42)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包