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