
common-user-management は、ユーザーアクセスを動的に制御するように設計されたユーザー管理サービスを備えた堅牢な Spring Boot アプリケーションです。アプリケーションのエンドポイント /api/v1/customer/profile-picture には重大なセキュリティ脆弱性があります。このエンドポイントは、適切な検証や制限なしにファイルアップロードを許可するため、RCE(リモートコード実行)につながります。
私は、動的にユーザーアクセスを制御するように設計されたユーザー管理サービスを備えた堅牢なSpring Bootアプリケーションである common-user-management に、重大なセキュリティ脆弱性を発見しました。この脆弱性は /api/v1/customer/profile-picture エンドポイントに影響し、攻撃者が適切な検証なしにファイルをアップロードできるようにすることで、リモートコード実行 (RCE) につながる可能性があります。
以下のPythonスクリプトを使用して、この脆弱性を悪用できます。
python exploit.py -u "customer_user" -p "your_password" -f "malicious.jsp" -url "https://target.com"
-u: Username
-p: Password
-f: Malicious file to upload
-url: Target URL
エンドポイント /api/v1/customer/profile-picture に重大なセキュリティ脆弱性が存在します。このエンドポイントは、適切な検証や制限なしにファイルアップロードを許可するため、攻撃者が悪意のあるファイルをアップロードし、リモートコード実行 (RCE) につなげることができます。
脆弱性の説明
この問題は、ファイル拡張子とContent-Typeヘッダーに対する検証の欠如に起因します。その結果、アプリケーションは任意のファイルのアップロードを許可します。これには以下が含まれます:
これらのファイルはその後Webサーバーによって実行される可能性があり、攻撃者がサーバー上で任意のコードを実行できるようになり、システム全体を危険にさらす可能性があります。
悪意のあるファイルをアップロード:
ロール26、17が追加された顧客を使用して、悪意のあるファイルペイロード(例:.jsp、.php、.html)を /api/v1/customer/profile-picture にPUTリクエストで送信します。
ファイルの場所を取得:
/api/v1/customer/my-profile にGETリクエストを送信し、レスポンス内のプロフィールリンクからファイルの場所を取得します。
アップロードされたファイルを実行: レスポンスで返されたURLを介して、ファイル名を使用してファイルに直接アクセスします。 サーバーがアップロードされたファイルタイプをサポートしている場合、サーバーはファイルを実行し、リモートコード実行につながります。