
CVE-2022-36804用のPythonエクスプロイト。巧妙に細工されたアーカイブリクエストを介して、脆弱なBitbucket Server/Data Center上でリモートコマンド実行とファイル転送を可能にします。
このリポジトリには、Atlassian Bitbucket Server/Data Center の脆弱性 CVE-2022-36804 に対する Python エクスプロイトスクリプトが含まれています。この問題は Git アーカイブフローにおけるコマンドインジェクションの欠陥で、巧妙に細工された prefix パラメータがサーバーに解釈され、シェルコマンドとして実行される可能性があります。
CVE-2022-36804 は、Bitbucket Server/Data Center のリモートコマンド実行の脆弱性です。この脆弱性は、アーカイブエンドポイントにおける prefix 値の安全でない処理に起因し、攻撃者が制御するデータが Git を通じてシェル呼び出しに到達する可能性がありました。その結果、パスとデプロイモデルに応じて、認証なしまたは認証付きのコマンド実行が可能になります。
このスクリプトは脆弱なアーカイブエンドポイントを標的とし、細工されたリクエストを使用してインジェクションをトリガーします。
この PoC は、CVE-2022-36804 に関する Atlassian のアドバイザリで対象となる影響を受ける Bitbucket Server/Data Center ビルドを対象としています。実際には、影響を受ける範囲には、Atlassian がリストした修正版より前の古い 7.x/8.x Bitbucket Server/Data Center リリースが含まれます。パッチ適用済みまたはアップグレード済みのビルドを対象としたものではありません。
これは、自分が所有するシステム、または明示的にテストを許可されたシステムに対してのみ使用してください。
このスクリプトは、以下のエンドポイントにリクエストを送信します:
/rest/api/latest/projects/{project}/repos/{repo}/archive
次のような、特別に細工された prefix パラメータを使用します:
ax%00--exec=`<command>`%00--remote=origin
このトリックは、ヌルバイト / Git コマンドパスを悪用して、サーバーがアーカイブリクエストからシェルコマンドを実行させるというものです。このスクリプトは、必要に応じてコマンドを gzip + base64 でラップし、出力をコンパクトに返してローカルでデコードします。
このスクリプトは、主に 2 つのモードをサポートしています:
python cve-2022-36804_v5.py <url> <username> <password> -p <project> -r <repo> -c "whoami"
オプション:
-c, --command: コマンドを実行します--no-encode: gzip+base64 ラップなしで生のコマンドを送信します-p, --project: Bitbucket プロジェクトキー-r, --repo: Bitbucket リポジトリのスラッグpython cve-2022-36804_v5.py <url> <username> <password> -p <project> -r <repo> -f /path/to/local.bin -o /tmp/remote.bin
ローカルファイルをチャンク単位で読み取り、各チャンクを base64 エンコードし、エクスプロイトを使用してサーバー上のターゲットパスに再構築します。
requests.Session を使用します。verify = False)。このツールは、許可されたセキュリティ研究および管理されたテスト専用です。自分が所有していない、またはテストする許可を得ていないシステムに対して使用することは、違法かつ非倫理的です。