当前位置: 首页 > news >正文

最新SQLMap安装与入门技术

点击星标,即时接收最新推文

53557cbed35ae640d978d6ebeba8790e.png

本文选自《web安全攻防渗透测试实战指南(第2版)》

五折购买链接:u.jd.com/3ibjeF6

d0e81dbe99b8c92fc9598b24d9042b07.gif

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会有意想不到的效果。

5b146abacdfcf1a3aaaffe9c451b3f30.gif

SQLMap的安装

SQLMap的安装需要Python环境(支持Python 2.6、Python 2.7、Python 3.x),本节使用的是Python 3,可在官网下载安装包并一键安装,安装完成后,复制Python的安装目录,添加到环境变量值中(或者在安装时,勾选“Add Python to environment variables”选项,自动将Python加入环境变量),如图3-1所示。

 a08d3926a1eca3c112b26251b124dc21.png

图3-1  

从SQLMap官网下载最新版的SQLMap,打开cmd,输入命令“python sqlmap.py”,工具即可正常运行,如图3-2所示。

1a106ec9938f582f6a51aadc93f7b0b3.png

图3-2

fc4e68c05f92c1e82b480ab252d23ffc.gif

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所示。

66f5b08232a0a69f97c50be80922891c.png

图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存在漏洞,是否继续检测其他参数,一般默认按回车键即可继续检测。

   7fefafb0f48841193e1c0b2adf0a4a97.png

图3-4

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

从文件中加载HTTP请求,SQLMap可以从一个.txt文件中获取HTTP请求,这样就可以不设置其他参数(如Cookie、POST数据等)。.txt文件中的内容为Web数据包,如图3-5所示。

b1d2ecf8b4334fbf10c63443458150ab.png 图3-5

运行如下命令,判断是否存在注入:

python sqlmap.py –r 1.txt

运行后的结果如图3-6所示,参数“-r ”一般在存在Cookie注入时使用。

02e9f1780ab5624a19bdf020be5286cc.png

图3-6  

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

该命令是确定网站存在注入后,用于查询当前用户下的所有数据库,命令如下:

python sqlmap.py -u http://10.211.55.6/Less-1/?id=1 --dbs

如果当前用户有权限读取包含所有数据库列表信息的表,则使用该命令即可列出所有数据库,如图3-7所示。

1910ca8dc59628b0e73d585748f516c0.png 

图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所示。

006a5eb8af80fc66d4ca7840299051f6.png 

图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所示。

b6635e0e93496600862708dcc76cf244.png 

图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所示。

1156e85f18b026a8f8f949a07d96f494.png 

图3-10  

7.获取数据库的所有用户

该命令的作用是列出数据库的所有用户。在当前用户有权限读取包含所有用户的表时,使用该命令就可以列出所有管理用户,命令如下:

python sqlmap.py –u "http://10.211.55.6/Less-1/?id=1" --users

可以看出,当前用户账号是root,如图3-11所示。

661b7577e015eb04f2eea4dc788fa87e.png 

图3-11  

8.获取数据库用户的密码

该命令的作用是列出数据库用户的密码。如果当前用户有读取用户密码的权限,则SQLMap会先列举出用户,然后列出Hash,并尝试破解,命令如下:

python sqlmap.py –u "http://10.211.55.6/Less-1/?id=1" --passwords

从图3-12中可以看出,密码采用MySQL 5加密方式,可以在解密网站中自行解密。

54b6ea0c03e26617eba2942f895fd01f.png 

图3-12  

9.获取当前网站数据库的名称

使用该命令可以列出当前网站使用的数据库,命令如下:

python sqlmap.py –u "http://10.211.55.6/Less-1/?id=1" --current-db

从图3-13中可以看出,数据库是security。

8d4e5ac8385a9bf02481b633d7eb39da.png 

图3-13  

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

使用该命令可以列出当前使用网站数据库的用户,命令如下:

python sqlmap.py –u "http://10.211.55.6/Less-1/?id=1" --current-user

从图3-14中可以看出,用户是root。

7eb6466a1b123b0acf4a47f164d578dd.png 

图3-14  

—  实验室旗下直播培训课程  —

0adccb3ca15c9618ddd6d6aa2745ef15.png

5cfd18b0a446d1eb5cde3094f908caa6.jpeg

7a09272f677ca21a1a244269779eedc6.jpeg09058f257ec84ab10457b674587e2d44.png

c1d5aa8fd4c6a08862971e490aa9e8c4.jpeg

73644c1a8311b632744a41f49f0c5f0a.jpeg

156e6fe4fa3093596a0360432036ced9.jpeg

585635c70b175c1fae0892b87c7a7e9f.jpeg

69bc852176994473568ef2ba0ac76d13.jpeg


和20000+位同学加入MS08067一起学习

e3bc44b6de209e39c10ec451a5a543d7.gif

相关文章:

最新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>二、自定义注解及限流拦截器 自定义注解&#xff1a;Limiter package com.haita…...

帮助中心的价值是什么?怎样才能在线搭建官网网站帮助中心?

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

Kubernetes——理论基础

Kubernetes——理论基础 一、Kubernetes 概述1.K8S 是什么&#xff1f;2.为什么要用 K8S?3.Kubernetes 主要功能 二、Kubernetes 集群架构与组件三、Master 组件1.Kube-apiserver2.Kube-controller-manager3.Kube-scheduler4.配置存储中心——etcd 四、Node 组件1.Kubelet2.Ku…...

【VUE3】

Vue 3 是当下最流行的前端框架之一&#xff0c;其主要特点是性能更好、体积更小、更易于维护。下面是 Vue 3 的一些重要知识点和代码示例&#xff1a; 创建 Vue 实例 import { createApp } from vueconst app createApp({data() {return {message: Hello, Vue 3!}} })app.mo…...

《金融数据保护治理白皮书》发布(137页)

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

上海亚商投顾:沪指震荡微涨 金融、地产午后大幅走强

上海亚商投顾前言&#xff1a;无惧大盘涨跌&#xff0c;解密龙虎榜资金&#xff0c;跟踪一线游资和机构资金动向&#xff0c;识别短期热点和强势个股。 市场情绪 三大指数早盘震荡&#xff0c;午后集体拉升反弹&#xff0c;创业板指涨超1%。券商等大金融板块午后再度走强&#…...

Linux文件管理知识:查找文件

前几篇文章一一介绍了LINUX进程管理控制命令及网络层面的知识体系&#xff0c;综所周知&#xff0c;一个linux系统是由很多文件组成的&#xff0c;那么既然有那么多文件&#xff0c;那我们该如何管理这些文件呢&#xff1f; Linux中的所有数据都是以文件形式存在的&#xff0c…...

【TypeScript】安装的坑!

TypeScript安装 安装TypeScript安装时候可能报错这样开头的数据&#xff08;无法枚举容器中的对象&#xff09;——原因&#xff1a;没权限先解决没权限的问题如果发现无法修改-高级-修改继续安装想使用tsc-发现&#xff0c;tsc不能用解决方法&#xff1a;配置环境变量最后的最…...

spring boot 2.x 使用 jpa 映射 json mysql列数据映射乱码

通过下面的依赖&#xff0c;可以将 mysql 的 json 列字段&#xff08;mysql 5.7及以上的版本支持&#xff09;&#xff0c;映射成 Java Bean <dependency><groupId>com.vladmihalcea</groupId><artifactId>hibernate-types-52</artifactId><v…...

创建Helm脚本

一、创建脚本 Helm 是 Kubernetes 的包管理工具&#xff0c;它可以帮助您简化和自动化 Kubernetes 应用程序的部署和管理。使用 Helm&#xff0c;您可以创建和管理称为 Helm Chart 的应用程序打包&#xff0c;这些 Chart 包含了 Kubernetes 资源和配置信息&#xff0c;可以在不…...

2.05 购物车后台刷新并显示

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

2023年第四届“华数杯”数学建模思路 - 案例:异常检测

文章目录 赛题思路一、简介 -- 关于异常检测异常检测监督学习 二、异常检测算法2. 箱线图分析3. 基于距离/密度4. 基于划分思想 赛题思路 &#xff08;赛题出来以后第一时间在CSDN分享&#xff09; https://blog.csdn.net/dc_sinor?typeblog 一、简介 – 关于异常检测 异常…...

inline的盒子设置transform不生效

目录 如何遇到的问题原因为什么会这样怎么解决 如何遇到的问题 最近在开发过程中&#xff0c;因为需要对一个icon进行旋转&#xff0c;而icon本身&#xff0c;是设置span的伪类来进行的&#xff0c;结果我发现无论怎么设置transform都无法使其生效。 span::before {font-famil…...

自然语言处理学习笔记(四)————词典分词

目录 1.中文分词 2.词典分词 &#xff08;1&#xff09;词的定义 &#xff08;2&#xff09;词典性质——齐夫定律 &#xff08;3&#xff09;词典 &#xff08;4&#xff09;加载词典 &#xff08;5&#xff09;hanlp词典路径 1.中文分词 中文分词&#xff1a;指的是将一…...

jsoncpp库和nlohmann-json库实现JSON与字符串类型转换

在ROS中&#xff0c;可以使用jsoncpp库来实现JSON与字符串类型之间的转换。jsoncpp是ROS自带的一个JSON库&#xff0c;它提供了一些函数来解析和生成JSON数据。 下面是一个使用jsoncpp库实现JSON与字符串类型转换的示例代码&#xff1a; #include <ros/ros.h> #include…...

20230803 函数传参引用

定义多输出变量的函数时&#xff0c;通过直接传参数内存地址在函数内部直接修改外部变量的值。需要定义函数时 在输入参数前加 引用符号 & 。 C 值传递、指针传递、引用传递详解...

IDEA SpringBoot项目引入外部jar并打包

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

ModaHub魔搭社区——阿里云通义千问宣布开源!70亿参数模型上线魔搭社区,免费可商用

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

Jenkins 自动化部署实例讲解,另附安装教程!

【2023】Jenkins入门与安装_jenkins最新版本_丶重明的博客-CSDN博客 也可以结合这个互补看 前言 你平常在做自己的项目时&#xff0c;是否有过部署项目太麻烦的想法&#xff1f;如果你是单体项目&#xff0c;可能没什么感触&#xff0c;但如果你是微服务项目&#xff0c;相…...

React Native 导航系统实战(React Navigation)

导航系统实战&#xff08;React Navigation&#xff09; React Navigation 是 React Native 应用中最常用的导航库之一&#xff0c;它提供了多种导航模式&#xff0c;如堆栈导航&#xff08;Stack Navigator&#xff09;、标签导航&#xff08;Tab Navigator&#xff09;和抽屉…...

Zustand 状态管理库:极简而强大的解决方案

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

【WiFi帧结构】

文章目录 帧结构MAC头部管理帧 帧结构 Wi-Fi的帧分为三部分组成&#xff1a;MAC头部frame bodyFCS&#xff0c;其中MAC是固定格式的&#xff0c;frame body是可变长度。 MAC头部有frame control&#xff0c;duration&#xff0c;address1&#xff0c;address2&#xff0c;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项目&#xff1a;https://github.com/datawhalechina/llms-from-scratch-cn 工具介绍 tiktoken&#xff1a;OpenAI开发的专业"分词器" torch&#xff1a;Facebook开发的强力计算引擎&#xff0c;相当于超级计算器 理解词嵌入&#xff1a;给词语画"…...

Web中间件--tomcat学习

Web中间件–tomcat Java虚拟机详解 什么是JAVA虚拟机 Java虚拟机是一个抽象的计算机&#xff0c;它可以执行Java字节码。Java虚拟机是Java平台的一部分&#xff0c;Java平台由Java语言、Java API和Java虚拟机组成。Java虚拟机的主要作用是将Java字节码转换为机器代码&#x…...

根目录0xa0属性对应的Ntfs!_SCB中的FileObject是什么时候被建立的----NTFS源代码分析--重要

根目录0xa0属性对应的Ntfs!_SCB中的FileObject是什么时候被建立的 第一部分&#xff1a; 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 是一个强大的命令行工具&#xff0c;用于发送 HTTP 请求和与 Web 服务器交互。在 Web 开发和测试中&#xff0c;cURL 经常用于发送 GET 请求来获取服务器资源。本文将详细介绍 cURL GET 请求的语法和使用方法。 一、cURL 基本概念 cURL 是 "Client URL" 的缩写…...

水泥厂自动化升级利器:Devicenet转Modbus rtu协议转换网关

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