初心者向けエクスプロイトでChess.comをハックした方法
(skii.dev)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⁺の意見:
- このブログ記事は、Chess.comのような大規模オンラインプラットフォームで発生しうるセキュリティ脆弱性を発見し、報告する過程を興味深く説明している。
- XSS脆弱性はWebサイトのセキュリティに深刻な脅威となりうるため、こうした脆弱性を見つけて修正することは、Webサイト利用者の個人情報保護において非常に重要である。
- この記事は、ソフトウェア開発者やセキュリティ専門家に対し、リッチテキストエディタのようなWebアプリケーション構成要素の脆弱性を認識し、それを防ぐ重要性を強調している。
1件のコメント
Hacker Newsの意見
元記事の著者(OP)の紹介と背景情報
MySpaceワームに関連する機能についてのコメント
XSS脆弱性に関連する技術的な質問
chess.comのリッチテキストエディタについての意見
技術的な略語についての質問
サブドメインリダイレクトに関連する技術的な質問