攻撃者がSVG onloadを悪用してMagentoに隠されたMagecartスキマーを展開

Sansecのセキュリティ研究者は、Magentoのeコマースプラットフォームを狙った大規模なMagecartキャンペーンを発見しました。

約100のオンラインストアが、高度なクレジットカードスキマーに感染しました。セキュリティスキャナーを回避し、買い物客の支払いデータをシームレスに盗むために、攻撃者は悪意のあるペイロードを目に見えないSVG画像要素の内部に隠蔽しました。

脅威インテリジェンスによると、攻撃者はPolyShell脆弱性を使用してサイトに侵入した可能性があります。これは、パッチが適用されていないMagento環境を引き続き悩ませている悪用です。

SVGインジェクション技術

セキュリティツールによって頻繁にフラグが立つ外部スクリプトを読み込む代わりに、脅威行為者はストアのHTMLに直接1×1ピクセルのSVG画像を埋め込みます。

スキマーペイロード全体はbase64でエンコードされ、SVGの onload イベントハンドラーを通じてインラインで実行されます。

以下は正確なインジェクション方法です:

xml<svg
  width="1px"
  height="1px"
  onload="(()=>{setTimeout(atob('KGZ1bmN0aW9uKCl7IGlm...'),1)})()"
></svg>

マルウェアを完全にインラインで保ち、単一の文字列属性内でエンコードすることで、攻撃者は悪意のある外部スクリプト参照を探す従来の監視を正常に回避します。

注入されたスキマーは、買い物客がチェックアウトボタンをクリックするのを辛抱強く待ちます。useCapture イベントリスナーを使用してユーザーのアクションをインターセプトし、ストアの正当なハンドラーの前に独自の実行を優先します。

その後、買い物客には、リアルなカード検証と請求フィールドを備えた、非常に説得力のあるフルスクリーンの「Secure Checkout」オーバーレイが表示されます。マルウェアは以下のJavaScriptペイロードを使用してナビゲーションをインターセプトします:

javascriptdocument.addEventListener(
  "click",
  function (e) {
    var el = e.target.closest('a,button,[role="button"]');
    if (!el) return;
    var href = el.getAttribute("href") || "";
    if (
      (href && checkoutUrl.includes(href)) ||
      el.getAttribute("data-role") === "proceed-to-checkout" ||
      el.id === "top-cart-btn-checkout"
    ) {
      e.preventDefault();
      e.stopImmediatePropagation();
      show(); // 偽のチェックアウトオーバーレイを表示
    }
  },
  true,
);

被害者が支払い詳細を送信した後、マルウェアはキー "script" を使用したXOR暗号を使用して盗まれたデータを暗号化し、その後base64エンコーディングを行います。

収集された情報は、正当なFacebookアナリティクストラフィック(/fb_metrics.php)に見えるように巧妙に偽装された、6つの攻撃者制御ドメインのいずれかに送信されます。最大限のステルスを確保するために、スキマーは宛先URLを二重にエンコードします。

Sansecによると、データが正常に流出すると、マルウェアはブラウザストレージフラグ(localStorage.setItem('_mgx_cv', '1'))を設定して、同じ買い物客を2回ターゲットにしないようにします。

最後に、被害者は実チェックアウトページにサイレントでリダイレクトされ、支払いデータが侵害されたことに完全に気づかれません。

侵害の指標

流出ドメイン

6つのドメインはすべて 23.137.249.67 に解決され、オランダのIncogNet LLC(AS40663)でホストされています。

ドメイン 確認された被害者
statistics-for-you.com 15
statistics-renew.com 14
morningflexpleasure.com 14
reusable-flex.com 12
goingfatter.com 11
wellfacing.com 10

技術的指標

指標
インジェクション方法 <svg width="1px" height="1px" onload="...">
ペイロードエンコーディング atob()経由のbase64、setTimeout経由で実行
データエンコーディング キー "script" を使用したXOR、その後base64
流出エンドポイント /fb_metrics.php
流出方法 fetch() POST no-cors、フォールバック隠されたiframe
ローカルストレージキー _mgx_cv
キャンペーンマーカー ペイロード配列内の {site:'rand0m'}
流出サーバー 23.137.249.67 (IncogNet LLC、AS40663、NL)

翻訳元: https://gbhackers.com/attackers-deploy-hidden-magecart-skimmer-on-magento/

ソース: gbhackers.com