XML External Entity Injection(XXE)
Last updated
Last updated
Extensible Markup Language, o también abreviado XML es un lenguaje diseñado para transportar información entre un cliente y un servidor en un formato que va a ser interpretado (una vez es enviado al backend) por una API para realizar alguna tarea. A diferencia de HTML que tiene etiquetas predefinidas, acá se utiliza el nombre que el desarrollador haya elegido ponerle. Las etiquetas están en formato de árbol, por lo que se comienza con una etiqueta raíz y se sigue con las etiquetas hijas, las etiquetas hijas pueden tener hermanas y padres.
Abreviados DTD, sirven para definir la estructura y sintaxis de un documento XML, describiendo los elementos, estructura y como se van a anidar las etiquetas en el documento.
Los elementos de un DTD son básicamente las etiquetas que vamos a estar utilizando, estas pueden contener texto, otros elementos o estar en blanco.
Estos proveen información de los atributos de un elemento.
Las entidades sirven para representar información o caracteres especiales en un DTD. Algunos ejemplos son:
<
<
>
>
&
&
Sintaxis
Internal Entity
External Entity
La explotación de las entidades externas se la realiza declarando una entidad externa apuntando ya sea a una url o con algun wrapper apuntando a archivos internos de la máquina, por ejemplo: