Muestra las diferencias entre dos versiones de la página.
Ambos lados, revisión anteriorRevisión previaPróxima revisión | Revisión previa | ||
app:vemp [2024/09/19 16:30] – thejuanvisu | app:vemp [2024/09/26 15:58] (actual) – thejuanvisu | ||
---|---|---|---|
Línea 137: | Línea 137: | ||
Las reglas de escapado varían en función a donde se va a añadir el contenido. Para validar documentos XML se suelen usar esquemas (DTD), que es un documento de definición donde se indica como debe ser un documento XML. Esto permite limitar cuantas veces se repite una etiqueta y donde van, pero hay que tener cuidado ya que se pueden invalidar demasiados documentos. | Las reglas de escapado varían en función a donde se va a añadir el contenido. Para validar documentos XML se suelen usar esquemas (DTD), que es un documento de definición donde se indica como debe ser un documento XML. Esto permite limitar cuantas veces se repite una etiqueta y donde van, pero hay que tener cuidado ya que se pueden invalidar demasiados documentos. | ||
- | ==== Conclusiones de inyección de código ==== | + | ==== Conclusiones de inyección de código |
+ | * Hay un componente común a todos los ataques por inyección. Se produce inyección de código cuando los datos de usuario no se validan de la forma adecuada. | ||
+ | * Generalmente varía el lenguaje con el que se intercambian mensajes y los caracteres reservados. | ||
+ | * Si el lenguaje da una forma estándar para prevenir un ataque de inyección se recomienda utilizarlo. | ||
+ | * Se deben usar listas blancas de valores válidos, permitiendo solo ciertos tipos de datos como entrada para prevenir la inyección. Por desgracia no pueden ser usadas siempre. | ||
+ | * En caso de no poderse hacer nada, se recomienda el escapado manual, utilizando de ser posible una librería ya existente. | ||
- | ==== Inyección de JavaScript (XSS) ==== | + | ===== Inyección de JavaScript (XSS) ===== |
+ | Es un tipo de inyección tan importante que se ve por separado. Generalmente hay un cliente y una aplicación web que intercambian información. En el intercambio de datos suele ir código en HTML junto a JavaScript. | ||
+ | Las consecuencias de inyección de javascript pueden ser: | ||
+ | * Sustracción de información | ||
+ | * Sustracción de credenciales | ||
+ | * Secuestro de sesión y suplantación de identidad. | ||
+ | |||
+ | En el caso de Reflected XSS el servidor incluye en la respuesta HTTP el código JS que el atacante ha insertado en algún punto de la petición. A veces se pueden realizar estas inyecciones desde la url: | ||
+ | < | ||
+ | |||
+ | Esto sería un ataque de inyección javascript de tipo 1, conocido como Stored XSS. | ||
+ | |||
+ | Si el código insertado se almacena consistentemente en la base de datos, entonces tenemos un ataque de tipo 2. | ||
+ | El contenido que más se suele inyectar son los scripts, pero también se pueden inyectar iframes. | ||