最新SQLMap安装与入门技术
点击星标,即时接收最新推文
本文选自《web安全攻防渗透测试实战指南(第2版)》
五折购买链接:u.jd.com/3ibjeF6
SQLMap详解
SQLMap是一个自动化的SQL注入工具,其主要功能是扫描、发现并利用给定URL的SQL注入漏洞。SQLMap内置了很多绕过插件,支持的数据库是MySQL、Oracle、PostgreSQL、Microsoft SQL Server、Microsoft Access、IBM DB2、SQLite、Firebird、Sybase和SAP MaxDB。SQLMap采用了以下五种独特的SQL注入技术。
(1)基于布尔类型的盲注,即可以根据返回页面判断条件真假的注入。
(2)基于时间的盲注,即不能根据页面返回的内容判断任何信息,要通过条件语句查看时间延迟语句是否已执行(即页面返回时间是否增加)来判断。
(3)基于报错注入,即页面会返回错误信息,或者把注入的语句的结果直接返回页面中。
(4)联合查询注入,在可以使用Union的情况下的注入。
(5)堆查询注入,可以同时执行多条语句的注入。
SQLMap的强大功能包括数据库指纹识别、数据库枚举、数据提取、访问目标文件系统,并在获取完全的操作权限时执行任意命令。SQLMap的功能强大到让人惊叹,当常规的注入工具不能利用SQL注入漏洞进行注入时,使用SQLMap会有意想不到的效果。
SQLMap的安装
SQLMap的安装需要Python环境(支持Python 2.6、Python 2.7、Python 3.x),本节使用的是Python 3,可在官网下载安装包并一键安装,安装完成后,复制Python的安装目录,添加到环境变量值中(或者在安装时,勾选“Add Python to environment variables”选项,自动将Python加入环境变量),如图3-1所示。
图3-1
从SQLMap官网下载最新版的SQLMap,打开cmd,输入命令“python sqlmap.py”,工具即可正常运行,如图3-2所示。
图3-2
SQLMap入门
1.判断是否存在注入
假设目标注入点是http://10.211.55.6/Less-1/?id=1,用如下命令判断其是否存在注入:
python sqlmap.py -u http://10.211.55.6/Less-1/?id=1
结果显示存在注入,如图3-3所示。
图3-3
注意,当注入点后面的参数大于等于两个时,需要加双引号,命令如下:
python sqlmap.py -u "http://10.211.55.6/Less-1/?id=1&uid=2"
运行上述命令后,Terminal终端上会“爆出”一大段信息,如图3-4所示。信息中有三处需要选择的地方:第一处的意思为检测到数据库可能是MySQL,是否跳过并检测其他数据库;第二处的意思是在“level1、risk1”的情况下,是否使用MySQL对应的所有Payload进行检测;第三处的意思是参数ID存在漏洞,是否继续检测其他参数,一般默认按回车键即可继续检测。
图3-4
2.判断文本中的请求是否存在注入
从文件中加载HTTP请求,SQLMap可以从一个.txt文件中获取HTTP请求,这样就可以不设置其他参数(如Cookie、POST数据等)。.txt文件中的内容为Web数据包,如图3-5所示。
图3-5
运行如下命令,判断是否存在注入:
python sqlmap.py –r 1.txt
运行后的结果如图3-6所示,参数“-r ”一般在存在Cookie注入时使用。
图3-6
3.查询当前用户下的所有数据库
该命令是确定网站存在注入后,用于查询当前用户下的所有数据库,命令如下:
python sqlmap.py -u http://10.211.55.6/Less-1/?id=1 --dbs
如果当前用户有权限读取包含所有数据库列表信息的表,则使用该命令即可列出所有数据库,如图3-7所示。
图3-7
从图3-7中可以看到,查询出了5个数据库。
继续注入时,将参数“--dbs”缩写成“-D xxx”,意思是在xxx数据库中继续查询其他数据。
4.获取数据库中的表名
该命令的作用是在查询完数据库后,查询指定数据库中所有的表名,命令如下:
python sqlmap.py -u "http://10.211.55.6/Less-1/?id=1" -D security --tables
如果不在该命令中加入参数“-D”来指定某一个具体的数据库,则SQLMap会列出数据库中所有库的表,如图3-8所示。
图3-8
从图3-8中可以看出security数据库拥有的4个表名。继续注入时,将参数“--tables”缩写成“-T”,意思是在某个表中继续查询。
5.获取表中的字段名
该命令的作用是在查询完表名后,查询该表中所有的字段名,命令如下:
python sqlmap.py -u "http://10.211.55.6/Less-1/?id=1" -D security -T users --columns
该命令的运行结果如图3-9所示。
图3-9
从图3-9中可以看出,security数据库中的users表中一共有3个字段。在后续的注入中,将参数“--columns”缩写成“-C”,意思是获取指定列的数据。
6.获取字段内容
该命令的作用是在查询完字段名之后,获取该字段中具体的数据信息,命令如下:
python sqlmap.py –u "http://10.211.55.6/Less-1/?id=1" –D security –T users –C username,password --dump
这里需要下载的数据是security数据库里users表中username和password的值,如图3-10所示。
图3-10
7.获取数据库的所有用户
该命令的作用是列出数据库的所有用户。在当前用户有权限读取包含所有用户的表时,使用该命令就可以列出所有管理用户,命令如下:
python sqlmap.py –u "http://10.211.55.6/Less-1/?id=1" --users
可以看出,当前用户账号是root,如图3-11所示。
图3-11
8.获取数据库用户的密码
该命令的作用是列出数据库用户的密码。如果当前用户有读取用户密码的权限,则SQLMap会先列举出用户,然后列出Hash,并尝试破解,命令如下:
python sqlmap.py –u "http://10.211.55.6/Less-1/?id=1" --passwords
从图3-12中可以看出,密码采用MySQL 5加密方式,可以在解密网站中自行解密。
图3-12
9.获取当前网站数据库的名称
使用该命令可以列出当前网站使用的数据库,命令如下:
python sqlmap.py –u "http://10.211.55.6/Less-1/?id=1" --current-db
从图3-13中可以看出,数据库是security。
图3-13
10.获取当前网站数据库的用户名称
使用该命令可以列出当前使用网站数据库的用户,命令如下:
python sqlmap.py –u "http://10.211.55.6/Less-1/?id=1" --current-user
从图3-14中可以看出,用户是root。
图3-14
— 实验室旗下直播培训课程 —
和20000+位同学加入MS08067一起学习
相关文章:

最新SQLMap安装与入门技术
点击星标,即时接收最新推文 本文选自《web安全攻防渗透测试实战指南(第2版)》 五折购买链接:u.jd.com/3ibjeF6 SQLMap详解 SQLMap是一个自动化的SQL注入工具,其主要功能是扫描、发现并利用给定URL的SQL注入漏洞。SQLMa…...

Java 使用 Google Guava 实现接口限流
一、引入依赖 <dependency><groupId>com.google.guava</groupId><artifactId>guava</artifactId><version>30.0-jre</version> </dependency>二、自定义注解及限流拦截器 自定义注解:Limiter package com.haita…...

帮助中心的价值是什么?怎样才能在线搭建官网网站帮助中心?
帮助中心(Help Center)是一个提供公司或组织产品或服务相关信息的在线平台。它的价值在于为用户提供便捷的自助服务和解决问题的渠道,同时也能减轻客服人员的负担。 如何在线搭建官网网站帮助中心的步骤 确定需求:在搭建帮助中心…...

Kubernetes——理论基础
Kubernetes——理论基础 一、Kubernetes 概述1.K8S 是什么?2.为什么要用 K8S?3.Kubernetes 主要功能 二、Kubernetes 集群架构与组件三、Master 组件1.Kube-apiserver2.Kube-controller-manager3.Kube-scheduler4.配置存储中心——etcd 四、Node 组件1.Kubelet2.Ku…...
【VUE3】
Vue 3 是当下最流行的前端框架之一,其主要特点是性能更好、体积更小、更易于维护。下面是 Vue 3 的一些重要知识点和代码示例: 创建 Vue 实例 import { createApp } from vueconst app createApp({data() {return {message: Hello, Vue 3!}} })app.mo…...

《金融数据保护治理白皮书》发布(137页)
温馨提示:文末附完整PDF下载链接 导读 目前业界已出台数据保护方面的治理模型,但围绕金融数据保护治理的实践指导等尚不成熟,本课题围绕数据保护治理的金融实践、发展现状,探索和标准化相关能力要求,归纳总结相关建…...

上海亚商投顾:沪指震荡微涨 金融、地产午后大幅走强
上海亚商投顾前言:无惧大盘涨跌,解密龙虎榜资金,跟踪一线游资和机构资金动向,识别短期热点和强势个股。 市场情绪 三大指数早盘震荡,午后集体拉升反弹,创业板指涨超1%。券商等大金融板块午后再度走强&#…...
Linux文件管理知识:查找文件
前几篇文章一一介绍了LINUX进程管理控制命令及网络层面的知识体系,综所周知,一个linux系统是由很多文件组成的,那么既然有那么多文件,那我们该如何管理这些文件呢? Linux中的所有数据都是以文件形式存在的,…...

【TypeScript】安装的坑!
TypeScript安装 安装TypeScript安装时候可能报错这样开头的数据(无法枚举容器中的对象)——原因:没权限先解决没权限的问题如果发现无法修改-高级-修改继续安装想使用tsc-发现,tsc不能用解决方法:配置环境变量最后的最…...
spring boot 2.x 使用 jpa 映射 json mysql列数据映射乱码
通过下面的依赖,可以将 mysql 的 json 列字段(mysql 5.7及以上的版本支持),映射成 Java Bean <dependency><groupId>com.vladmihalcea</groupId><artifactId>hibernate-types-52</artifactId><v…...
创建Helm脚本
一、创建脚本 Helm 是 Kubernetes 的包管理工具,它可以帮助您简化和自动化 Kubernetes 应用程序的部署和管理。使用 Helm,您可以创建和管理称为 Helm Chart 的应用程序打包,这些 Chart 包含了 Kubernetes 资源和配置信息,可以在不…...

2.05 购物车后台刷新并显示
一.用户登录添加商品使用cookie存入购物车,并把购物车商品传入到后台 步骤1:创建购物车BO对象 public class ShopcartBO {private String itemId;private String itemImgUrl;private String itemName;private String specId;private String specName;p…...

2023年第四届“华数杯”数学建模思路 - 案例:异常检测
文章目录 赛题思路一、简介 -- 关于异常检测异常检测监督学习 二、异常检测算法2. 箱线图分析3. 基于距离/密度4. 基于划分思想 赛题思路 (赛题出来以后第一时间在CSDN分享) https://blog.csdn.net/dc_sinor?typeblog 一、简介 – 关于异常检测 异常…...
inline的盒子设置transform不生效
目录 如何遇到的问题原因为什么会这样怎么解决 如何遇到的问题 最近在开发过程中,因为需要对一个icon进行旋转,而icon本身,是设置span的伪类来进行的,结果我发现无论怎么设置transform都无法使其生效。 span::before {font-famil…...
自然语言处理学习笔记(四)————词典分词
目录 1.中文分词 2.词典分词 (1)词的定义 (2)词典性质——齐夫定律 (3)词典 (4)加载词典 (5)hanlp词典路径 1.中文分词 中文分词:指的是将一…...
jsoncpp库和nlohmann-json库实现JSON与字符串类型转换
在ROS中,可以使用jsoncpp库来实现JSON与字符串类型之间的转换。jsoncpp是ROS自带的一个JSON库,它提供了一些函数来解析和生成JSON数据。 下面是一个使用jsoncpp库实现JSON与字符串类型转换的示例代码: #include <ros/ros.h> #include…...
20230803 函数传参引用
定义多输出变量的函数时,通过直接传参数内存地址在函数内部直接修改外部变量的值。需要定义函数时 在输入参数前加 引用符号 & 。 C 值传递、指针传递、引用传递详解...

IDEA SpringBoot项目引入外部jar并打包
1、首先,我们再pom.xml中导入依赖包时,打包可以正常进行。 但如果我们引入了第三方的外部jar包(这里需要先把jar包添加到该项目依赖库中,这里不做演示),如图 2、导致打包时报错,程序包不存在或…...

ModaHub魔搭社区——阿里云通义千问宣布开源!70亿参数模型上线魔搭社区,免费可商用
通义千问开源!8月3日,AI模型社区魔搭ModaHub上架两款开源模型Qwen-7B和Qwen-7B-Chat,阿里云确认其为通义千问70亿参数通用模型和对话模型,两款模型均开源、免费、可商用。在多个权威测评中,通义千问7B模型取得了远超国内外同等尺寸模型的效果,成为当下业界最强的中英文7B…...

Jenkins 自动化部署实例讲解,另附安装教程!
【2023】Jenkins入门与安装_jenkins最新版本_丶重明的博客-CSDN博客 也可以结合这个互补看 前言 你平常在做自己的项目时,是否有过部署项目太麻烦的想法?如果你是单体项目,可能没什么感触,但如果你是微服务项目,相…...
React Native 导航系统实战(React Navigation)
导航系统实战(React Navigation) React Navigation 是 React Native 应用中最常用的导航库之一,它提供了多种导航模式,如堆栈导航(Stack Navigator)、标签导航(Tab Navigator)和抽屉…...

Zustand 状态管理库:极简而强大的解决方案
Zustand 是一个轻量级、快速和可扩展的状态管理库,特别适合 React 应用。它以简洁的 API 和高效的性能解决了 Redux 等状态管理方案中的繁琐问题。 核心优势对比 基本使用指南 1. 创建 Store // store.js import create from zustandconst useStore create((set)…...

【WiFi帧结构】
文章目录 帧结构MAC头部管理帧 帧结构 Wi-Fi的帧分为三部分组成:MAC头部frame bodyFCS,其中MAC是固定格式的,frame body是可变长度。 MAC头部有frame control,duration,address1,address2,addre…...

【第二十一章 SDIO接口(SDIO)】
第二十一章 SDIO接口 目录 第二十一章 SDIO接口(SDIO) 1 SDIO 主要功能 2 SDIO 总线拓扑 3 SDIO 功能描述 3.1 SDIO 适配器 3.2 SDIOAHB 接口 4 卡功能描述 4.1 卡识别模式 4.2 卡复位 4.3 操作电压范围确认 4.4 卡识别过程 4.5 写数据块 4.6 读数据块 4.7 数据流…...

PL0语法,分析器实现!
简介 PL/0 是一种简单的编程语言,通常用于教学编译原理。它的语法结构清晰,功能包括常量定义、变量声明、过程(子程序)定义以及基本的控制结构(如条件语句和循环语句)。 PL/0 语法规范 PL/0 是一种教学用的小型编程语言,由 Niklaus Wirth 设计,用于展示编译原理的核…...
LLM基础1_语言模型如何处理文本
基于GitHub项目:https://github.com/datawhalechina/llms-from-scratch-cn 工具介绍 tiktoken:OpenAI开发的专业"分词器" torch:Facebook开发的强力计算引擎,相当于超级计算器 理解词嵌入:给词语画"…...
Web中间件--tomcat学习
Web中间件–tomcat Java虚拟机详解 什么是JAVA虚拟机 Java虚拟机是一个抽象的计算机,它可以执行Java字节码。Java虚拟机是Java平台的一部分,Java平台由Java语言、Java API和Java虚拟机组成。Java虚拟机的主要作用是将Java字节码转换为机器代码&#x…...
根目录0xa0属性对应的Ntfs!_SCB中的FileObject是什么时候被建立的----NTFS源代码分析--重要
根目录0xa0属性对应的Ntfs!_SCB中的FileObject是什么时候被建立的 第一部分: 0: kd> g Breakpoint 9 hit Ntfs!ReadIndexBuffer: f7173886 55 push ebp 0: kd> kc # 00 Ntfs!ReadIndexBuffer 01 Ntfs!FindFirstIndexEntry 02 Ntfs!NtfsUpda…...
掌握 HTTP 请求:理解 cURL GET 语法
cURL 是一个强大的命令行工具,用于发送 HTTP 请求和与 Web 服务器交互。在 Web 开发和测试中,cURL 经常用于发送 GET 请求来获取服务器资源。本文将详细介绍 cURL GET 请求的语法和使用方法。 一、cURL 基本概念 cURL 是 "Client URL" 的缩写…...

水泥厂自动化升级利器:Devicenet转Modbus rtu协议转换网关
在水泥厂的生产流程中,工业自动化网关起着至关重要的作用,尤其是JH-DVN-RTU疆鸿智能Devicenet转Modbus rtu协议转换网关,为水泥厂实现高效生产与精准控制提供了有力支持。 水泥厂设备众多,其中不少设备采用Devicenet协议。Devicen…...