
CVE-2022-46169(別名 Cacti 未認証コマンドインジェクション)のシンプルな PoC です。この脆弱性により、バージョン 1.2.17 から 1.2.22 までの Cacti を実行しているサーバー上で、認証されていないユーザーが任意のコードを実行できます。
これは Vulnhub の Cacti シナリオを基にしたシンプルな PoC です。詳細はこちらを参照してください。
Cacti は、世界中のユーザー向けの堅牢で拡張性のある運用監視および障害管理フレームワークです。コマンドインジェクションの脆弱性により、特定のデータソースが監視対象デバイスに選択されていた場合、バージョン 1.2.17 から 1.2.22 までの Cacti を実行しているサーバー上で、未認証のユーザーが任意のコードを実行できる可能性があります。
参考文献:
以下のコマンドを実行して Cacti サーバー 1.2.22 を起動します:
# Compile environment
docker compose build
# Run environment
docker compose up -d
サーバーが起動したら、http://localhost:8080 にログインページが表示されます。
次に、admin/admin でログインし、指示に従ってアプリケーションを初期化します。実際には、成功ページが表示されるまで「次へ」ボタンを何度もクリックするだけです。
この脆弱性を悪用する前に、新しい「グラフ」を追加する必要があります。コマンドインジェクションはデフォルトのグラフタイプでは発生しないためです:

グラフタイプ「Device - Uptime」を選択し、「作成」ボタンをクリックします:

上記の初期化が完了したら、攻撃者の立場に変わります。以下のスクリプトを使用して、Cacti サーバーにリクエストを送信し、コマンドインジェクション攻撃をトリガーします:

レスポンスにコマンドの結果は表示されませんが、/tmp/test.txt が正常に作成されていることを確認できます。
