2 ポイント 投稿者 GN⁺ 2024-01-27 | 1件のコメント | WhatsAppで共有

Chess.comでのXSS発見

  • チェスを趣味として楽しみつつ技術で遊んでいるうちに、Chess.comでXSS脆弱性を発見した。
  • Chess.comは1億人以上の会員を抱える、インターネット上で最大級のチェスサイトである。

概要

  • 2023年初頭にChess.comで頻繁に遊び始めた。
  • 友人をサイトに登録させ、友だち機能を使ってすぐに友だちになった。
  • MySpaceワームのような方法で自動友だち追加が可能か気になった。
  • 新しいアカウントを作成し、開発者ツールのネットワークタブを確認して自動友だち追加URLを発見した。

中盤

  • TinyMCEリッチテキストエディタを使ってXSSを試した。
  • Burpプロキシを使い、About説明に直接HTMLコードを挿入した。
  • TinyMCEの設定を確認し、background-imageスタイル属性を使ってXSSペイロードを作成した。
  • 複数の記号をテストし、XSSを実行する方法を突き止めた。
  • 最終的にCookieとJavaScriptオブジェクトを抽出できる方法を開発した。

終盤

  • XSSを完全に実行するために取り組んだ。
  • srcset属性を使って、より広いJS構文を使える新しい方法を見つけた。
  • Base64エンコードを使ってXSSペイロードを直接実行した。
  • TinyMCEエディタはサイト全体で使われており、影響は大きい。

分析

  • 脆弱性の根本原因は画像の再アップロード機能である。
  • Chess.comのドメイン名を含めることで、画像ホスティング検査を回避できる。
  • リッチテキストエディタはさまざまなHTML要素を許可しているため、XSSを達成するのに適している。
  • TinyMCEは最新の状態だったが、最終HTMLに対するサニタイズ処理が欠けていた。
  • Chess.comはユーザーに表示される最終HTMLに対してサニタイズ処理を行うべきである。

GN⁺の意見:

  1. このブログ記事は、Chess.comのような大規模オンラインプラットフォームで発生しうるセキュリティ脆弱性を発見し、報告する過程を興味深く説明している。
  2. XSS脆弱性はWebサイトのセキュリティに深刻な脅威となりうるため、こうした脆弱性を見つけて修正することは、Webサイト利用者の個人情報保護において非常に重要である。
  3. この記事は、ソフトウェア開発者やセキュリティ専門家に対し、リッチテキストエディタのようなWebアプリケーション構成要素の脆弱性を認識し、それを防ぐ重要性を強調している。

1件のコメント

 
GN⁺ 2024-01-27
Hacker Newsの意見
  • 元記事の著者(OP)の紹介と背景情報

    • 17歳のイギリスの学生で、A-Levelsに取り組んでおり、大学進学と学位取得見習いの選択肢を検討している。
    • GitHubプロフィールから、HashPalsの中核メンバーであり、Search-That-Hashの作者、ReMarkableタブレット向けフリーソフトウェアのオープンソースリポジトリのメンテナーであることが確認できる。
    • lichess.orgに対する好意的な評価と、技術的な関心事の共有についての言及がある。
  • MySpaceワームに関連する機能についてのコメント

    • 2005年ごろのMySpaceワームに言及し、著者は当時まだ生まれていなかったと明かしている。
    • 別のユーザーが、自分のチェスの対局で手が操作される現象を目撃して記録しており、chess.comにこの問題を報告したものの解決されなかったと指摘している。
  • XSS脆弱性に関連する技術的な質問

    • PHPSESSIDクッキーがHttpOnlyではない理由と、既知のXSS脆弱性がなぜ修正されていないのかについて疑問を呈している。
    • XSSのバグバウンティ報告への関心と、その過程の難しさに対する認識を示している。
  • chess.comのリッチテキストエディタについての意見

    • リッチテキストエディタを「聖杯」と呼ぶことへの面白い反応と、大規模なWebサイトであるにもかかわらず、このような機能に脆弱性があり得ることへの懸念を表している。
  • 技術的な略語についての質問

    • 「OSRF」の意味について質問し、これがCSRFに似た「Own-Site Request Forgery」を意味するのではないかと推測している。
  • サブドメインリダイレクトに関連する技術的な質問

    • サブドメイン(chess.com.foo.bar)でのリダイレクトが、どのように同一生成元ポリシー(same-origin policy)を回避したのかについて説明を求めている。