Gareth Heyes氏のBlack Hat講演の全資料: CSS: 受信トレイの中の爆弾

このリポジトリへようこそ。このリポジトリには、私の講演「CSS: 受信トレイの中の爆弾」に関するすべての資料が含まれています。 このリポジトリには、正当なセキュリティ研究、分析、および防御テストのみを目的として特定、開発、または収集された、概念実証コード、テストケース、および補足資料が含まれています。 この研究については、以下で読むことができます: 研究論文
このディレクトリには、FastMail に対する CSS ホットワイヤリング攻撃の PoC が含まれています。最初のコードスニペットは、エンコードされていない平文のベクターを示しています。2 番目の例はエンコードされたペイロードで、CSSOM が使用され、CSS コードが読み戻されると変異します。
このディレクトリには、Firefox を使用して Medium を攻撃する PoC が含まれています。トークンの先頭、末尾、中間部分を窃取する CSS を生成し、被害者がボタンをクリックするとそれをクリップボードにコピーします。トークンの各部分を取得するために必要な PHP ファイルも含めました。テキストファイルはサーバー上で書き込み可能である必要があり、パスから情報を抽出するには .htaccess ファイルを使用する必要があります。
このディレクトリは、CSP が外部リソースをブロックしているときにテキストノードを窃取するトークン外部流出技術を示しています。仕組みを明確にするために、デバッグ情報も含めました。
これは、純粋な HTML を使用してキーストロークを窃取するデモです。文字を隠すために小さなユニコード文字を使用しています。marquee は、select を切り詰めて select に見えないようにするために使用されています。
この PoC は、Atlas を説得してページからデータを取得させ、タブを開いて URL 経由で外部流出させるために使用したプロンプトを示しています。プロンプト内に各 URL が含まれていることにお気づきでしょう。これは、Atlas がプロンプトのテキストを、開こうとする URL と比較して、確認プロンプトを表示するかどうかを判断しているように見えたためです。
これは、Outlook を改ざんするために使用した PoC です。"data-tabster" は、メールが読み込まれたときにライブラリが CSS ガジェットをノードに追加するために必要な HTML 属性です。
これは講演でデモした Outlook に対するエクスプロイトです。ログイン画面を偽装し、アニメーションのトリックを使用して Firefox 上でリアルタイム動作を実現しており、ラベルによって偽の入力欄をクリック可能にすることで、ログイン画面の動作を再現しています。
これは、Outlook の UI を制御するためにラベルを使用し、攻撃者のメッセージを被害者の受信トレイに固定(ピン留め)する方法を示しています。
信じがたいことですが、サニタイズされた CSS だけで完全に動作するキーロガーを構築することに成功しました。これは CSS ガジェットを使用して画面を乗っ取ります。ただし、CSS を完全に制御できないため、制限があります。Outlook のログイン画面を完全に偽装するフルバージョンについては、「Outlook Firefox キーロガー」を参照してください。
この PoC は、Interest Invokers を使用して Chrome でリアルタイムキーロガーを作成する方法を示しています。
GitLab をテストしているときに、最小限の CSS トークン外部流出ツールを作成しました。スタイルインジェクションがあり、再帰的な CSS インポートが許可されている場合に使用できます。
Shazzer のおかげで、イメージプロキシのバイパスや、さまざまな CSS の癖や動作を見つけることができました。ベクターを公開しているので、どのように発見されたかを確認できます。
ベクターの全コレクションは、次の URL で閲覧できます:
注意:ベクターは講演後に公開されます。
CSS の変異を構築するために Hackvertor を使用しました。これは cssEscape タグを使用して行いました。Hackvertor には「Copy as HTML」機能もあり、入力内容の blob を作成してクリップボードに配置します。これは、ペーストによる CSS インジェクションがないかサイトを調査するために使用しました。
忘れずに 研究論文 もチェックしてください!