
Silverpeas バージョン 6.4.1 および 6.4.2 におけるユーザー名列挙の脆弱性を実証するための Proof-of-Concept スクリプト。
概要: この脆弱性は、パスワード忘れ機能(/silverpeas/CredentialsServlet/ForgotPassword エンドポイント)に存在します。Login パラメータに推測したユーザー名を指定して POST リクエストを送信すると、サーバーは異なる HTTP ステータスコード(有効なユーザーには 200 OK、無効なユーザーには 302 Found)を返します。この不一致により、リモートの未認証攻撃者がシステム上の有効なユーザー名を特定できます。
silverpeas_enum_poc.pyrequests ライブラリ(pip install requests)リポジトリをクローンするか、スクリプト(silverpeas_enum_poc.py)をダウンロードします。
依存関係をインストールします: pip install requests
ターミナルからスクリプトを実行します:
単一のユーザー名をテスト:
python silverpeas_enum_poc.py <TARGET_URL> -u <USERNAME>
例: python silverpeas_enum_poc.py http://vulnerable-silverpeas.local -u admin
ファイルからユーザー名をテスト:
python silverpeas_enum_poc.py <TARGET_URL> -w <WORDLIST_FILE>
例: python silverpeas_enum_poc.py https://vulnerable-silverpeas.com -w users.txt
スクリプトは次のように出力します:
[+] Username '...' appears VALID (Status: 200) :既存のアカウントに対応する可能性が高いユーザー名に対して出力されます。[-] Username '...' appears INVALID (Status: 302) :既存のアカウントに対応しない可能性が高いユーザー名に対して出力されます。このスクリプトは、教育目的および脆弱性の実証のために提供されています。このスクリプトは責任を持って、明示的な書面によるテスト許可を得たシステムに対してのみ使用してください。無許可のスキャンやテストは違法であり、非倫理的です。作者は一切の責任を負わず、このスクリプトによって引き起こされた誤用や損害についても責任を負いません。