【漏洞复现】Grafana任意文件读取漏洞 (CVE-2021-43798)_h领小白帽的博客-程序员秘密

技术标签: 漏洞复现  web安全  linux  

0X01 漏洞描述

Grafana是一个跨平台、开源的数据可视化网络应用程序平台,用户配置连接的数据源之后,Grafana可以在网络浏览器里显示数据图表和警告。

Grafana 存在未授权任意文件读取漏洞,攻击者在未经身份验证的情况下可通过该漏洞读取主机上的任意文件。

0x02 源码分析

搜索漏洞存在路径 /public/plugins/api.go文件中
在这里插入图片描述

r.Get("/public/plugins/:pluginId/*", hs.getPluginAssets)

跟踪对应的 getPluginAssets 方法
在这里插入图片描述

从请求路径中获取/public/plugins/ 后的参数赋值给 pluginID, 然后再被拼接至 pluginFilePath 进入文件读取片段

也就是说通过默认存在的插件来拼接文件路径构造请求进行文件读取

在这里插入图片描述

插件路径 public/app/plugins/panel

在这里插入图片描述

0x03 漏洞危害级别

高危

0x04 漏洞影响范围

Grafana 8.x 

0x05 本地环境测试

访问网址
在这里插入图片描述

账户密码默认:admin/admin

简单判断是否存在:/public/plugins/a/a 显示 404 plugin not found 400 可能就是中间件问题
在这里插入图片描述
验证漏洞是否存在
在这里插入图片描述
漏洞存在!!!

脚本验证:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

参考链接:

https://vas.riskivy.com/vuln-detail?id=104
https://nosec.org/home/detail/4914.html
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_46944519/article/details/121802269

智能推荐

WeblogicServer CVE-2018-2826漏洞的临时解决方案_F·F的博客-程序员秘密

漏洞描述:    Oracle WebLogic Server是美国甲骨文(Oracle)公司的一款适用于云环境和传统环境的应用服务器,它提供了一个现代轻型开发平台,支持应用从开发到生产的整个生命周期管理,并简化了应用的部署和管理。    Oracle WebLogic Server的T3通讯协议的实现中存在反序列化漏洞。远程攻击者可通过利用该漏洞发送特殊的报文完全控制WebLogic Serve...

python 字节(bytes和bytearray类)_python定义字节数组_bigear_码农的博客-程序员秘密

一个字节(byte)是由8个bit组成,其存储范围是00000000~111111111,定义:(1)bytes定义:b’abc’ 由三个字节构成,第一个字节

C#图像处理-OpenCVSharp教程(二十一) OpenCVSharp轮廓查找与绘制(一)_Color Space的博客-程序员秘密

本文作者Color Space,文章未经作者允许禁止转载!本文将介绍OpenCVSharp霍夫变换及应用!

自媒体百家号指数低怎么办,其实提高指数很容易_hqb0010的博客-程序员秘密

百家号指数代表什么?如何提高百家号指数,这样的问题,不断的有人问。关于百家号指数如何提高,已经是老生常谈的话题。在新手期不要一直关注指数,给平台提供优质内容,转正是很简单的事情。百家号指数解析:为了让百家号作者更方便地了解自己所运营帐号的表现和创作内容的投放效果,同时获得更多的推荐和权益,百度百家推出了百家号指数。百家号指数是通过对作者的内容质量、领域专注、活跃表现、原创能

Oracle Partition By 的使用_流沙的牵挂的博客-程序员秘密

1.概述Parttion by 关键字是Oracle中分析性函数的一部分,它和聚合函数不同的地方在于它能够返回一个分组中的多条记录,儿聚合函数一般只有一条反映统计值的结果。 2.使用方式    场景:查询出每个部门工资最低的员工编号【每个部门可能有两个最低的工资员工】   View Code  查询结果:2.1方法一select tsaler.* from tsaler inner join(s...

cocos2d-x坐标系详解 (对于新手有点用)_JuniorKang的博客-程序员秘密

转载与 http://www.ityran.com/archives/3367刚开始学习对于坐标没有概念的同学,可以参考一下相关的资料。笛卡尔坐标系不同坐标系简介笛卡尔坐标系你可能上学的时候就已经知道“笛卡尔坐标系”了,它在几何课本里经常用到。如果你已经忘得差不多了,下面这些图片可以很快唤起你的记忆:在移动游戏开发

随便推点

jq html可编辑表格,jquery 可编辑的表格_weixin_42565971的博客-程序员秘密

一般显示在网页上的表格是不能编辑的,现在要实现一个可编辑的表格。代码编写:前端代码editTable.html: JQuery-可编辑的表格 鼠标点击表各项就可以编辑学号姓名1张三2李四3王五4赵六css样式:table{border:1px solid black;/*修正单元格之间的边框不能合并的问题,border-collapse 属性设置表格的边框是否被合并为一个单一的边框,还是象在标准的...

为什么使用HashMap需要重写hashcode和equals方法_java常见面试题敲黑板了,HashMap最全的整理,大厂必考..._weixin_39524425的博客-程序员秘密

最近几天,在这样的大环境下显得疲惫不堪,但是我还是写下了这篇文章,希望对任何人都有用。HashMap是我们经常用到的数据结构,由数组和链表组成的数据结构如下图所示上方是一张数组图片,数组里面每个地方都存了Key-Value这样的实例,值得注意的是在java7版本中叫Entry,而在Java8里面叫做Node(节点)。因为初始化的时候所有的位置都是Null,在执行插入操作的时候会根据hash算法把k...

python alphashape_Python alphashape包_程序模块 - PyPI - Python中文网_weixin_39562234的博客-程序员秘密

Alpha形状工具箱用于生成Alpha形状的工具箱。alpha形状通常用于泛化包含点集的边界多边形。alpha参数定义为值a,使得半径为1/a的圆盘的边可以在一组点的任意两个边成员之间绘制,并且仍然包含所有点。凸面外壳是一个alpha形状,其中alpha参数等于零,该形状类似于在所有数据点上用橡皮筋包裹钉子时所看到的形状。在这个工具箱中,我们将生成α复合物,它与α形状密切相关,但由边缘点之间的直线...

2021-04-26 NodeJs安装步骤_m0_49811662的博客-程序员秘密

NodeJs安装步骤(windows版本)Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境。Node.js 使用了一个事件驱动、非阻塞式 I/O 的模型,使其轻量又高效。Node.js 的使用包管理器 npm来管理所有模块的安装、配置、删除等操作,使用起来非常方便,但是想要配置好npm的使用环境还是稍微有点复杂,下面跟着我一起来学习在windows系统上配置NodeJS和NPM吧。一、安装NodeJs打开NodeJS的官网,默认的情况主页就提供了Windo.

vue css 文字超出末尾加省略号...多行溢出_xi邮lj的博客-程序员秘密

// 一般写好盒子的 宽度 后,就可以使用下面样式// 超出隐藏 overflow: hidden;// 末尾加省略号 text-overflow: ellipsis;// 不换行 white-space: nowrap;// 行内元素转换行内块元素。(CSS2.1 新增的值) display: inline-block;但是遇到flex布局,宽度不够的话,会与上面属性有冲突,所以可以换一种;或者需要多加几行显示 overflow: hidden;// 下面是显示.

推荐文章

热门文章

相关标签