Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
IFA — PoC que expone una vulnerabilidad crítica en IndexedDB que permite un ataque de inundación de disco explotando la falta de restricciones. | Kitploit
Herramientas/GitHubGitHub/jofpin/ifa
Análisis de VulnerabilidadesExplotaciónSeguridad WebAprendizaje y Educación
GitHubjofpin/ifa

IFA

PoC que expone una vulnerabilidad crítica en IndexedDB que permite un ataque de inundación de disco explotando la falta de restricciones.

Ver Repositorio
272hace 1 añoRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir
Sitio web

IFA

IFA

Ataque de Inundación de Disco mediante IndexedDB

IFA es una Prueba de Concepto (PoC) que demuestra cómo un atacante puede explotar la API IndexedDB en navegadores web populares para llevar a cabo un ataque de inundación de disco. Este ataque aprovecha específicamente la falta de restricciones en IndexedDB, permitiendo que el navegador almacene datos sin límites efectivos, lo que puede consumir rápidamente el espacio en disco del usuario al inyectar cientos de MB por segundo. Esto puede provocar una degradación significativa del rendimiento del sistema, el agotamiento del almacenamiento y, en casos extremos, un colapso total del sistema.

¿Por qué debería preocuparte?

En un mundo donde dependemos cada vez más de aplicaciones web para la productividad y el entretenimiento, una vulnerabilidad que puede inutilizar tu dispositivo en cuestión de minutos es una amenaza seria. IFA revela cómo la falta de restricciones en IndexedDB puede ser explotada para crear un escenario donde un usuario pierde el control de su sistema debido a un simple script.

Impacto Directo en los Usuarios

Ejecutar IFA puede tener los siguientes efectos devastadores:

  1. Degradación masiva del rendimiento: El almacenamiento masivo y continuo de datos en IndexedDB satura las operaciones de entrada/salida del disco, provocando una disminución significativa en la velocidad del sistema. Los usuarios experimentarán tiempos de respuesta extremadamente lentos, dificultando el uso normal de sus dispositivos.

  2. Agotamiento rápido del almacenamiento: En cuestión de minutos, el ataque puede consumir gigabytes de espacio en disco. Una vez agotado el almacenamiento, el sistema se vuelve incapaz de realizar operaciones básicas como guardar documentos, instalar actualizaciones o incluso abrir nuevas aplicaciones.

  3. Inestabilidad y colapso del sistema: Cuando el disco está completamente lleno, el sistema operativo puede volverse inestable o incluso colapsar, resultando en la pérdida de datos no guardados y potencialmente dañando archivos críticos del sistema. Los usuarios afectados pueden enfrentarse a la necesidad de restaurar su sistema o incluso realizar una reinstalación completa del sistema operativo.

Navegadores Vulnerables

IFA afecta a una amplia gama de navegadores:

  • Navegadores vulnerables: Chrome, Opera, Edge, Brave, Safari y (todos los basados en Chromium).
  • Navegador seguro: Firefox ha demostrado ser resistente a este ataque debido a sus restricciones más estrictas en el almacenamiento de IndexedDB.

Arquitectura del Ataque

IFA utiliza una estrategia cuidadosamente diseñada para explotar la falta de restricciones en la API IndexedDB, maximizando el impacto del ataque mientras evita que el navegador colapse prematuramente:

  1. Generación de identificadores únicos: El script genera múltiples bases de datos con nombres aleatorios, asegurando que no haya conflictos y que cada base de datos pueda almacenar grandes cantidades de datos.

  2. Inyección de blobs de 8 MB: IFA utiliza blobs de 8 MB (fragmentos grandes de datos) compuestos de texto repetitivo y datos de imagen. Esta elección de tamaño es crucial porque permite almacenar grandes volúmenes de datos de manera eficiente sin provocar un colapso inmediato del navegador. Al usar blobs de un tamaño específico, IFA puede inundar el disco del usuario de manera consistente y persistente, evadiendo los mecanismos de seguridad basados en el búfer de memoria de la pestaña del navegador que podrían detener el ataque si se detectan operaciones de escritura excesivas o rápidas.

  3. Bucles de almacenamiento de datos: Los blobs de 8 MB se almacenan repetidamente en el objeto IndexedDB, creando un flujo continuo de datos que llena rápidamente el espacio en disco. IFA inyecta cientos de MB por segundo, asegurando un consumo rápido del espacio de almacenamiento del usuario mientras se evita el colapso inmediato del navegador.

  4. Saturación del disco: El proceso continúa indefinidamente, almacenando datos hasta que el espacio en disco se agota, lo que lleva a una serie de problemas que pueden paralizar el sistema.

Escenarios de Ataque Potenciales

El exploit IFA demuestra cómo una vulnerabilidad grave en la API IndexedDB puede ser utilizada como arma. A continuación, se presentan algunos escenarios en los que un atacante podría aprovechar esta PoC para causar daños significativos:

  1. Explotación mediante Cross-Site Scripting (XSS): Si un atacante descubre una vulnerabilidad XSS en un sitio web legítimo, podría inyectar el script IFA en el sitio. Cuando los usuarios visiten la página comprometida, el script se ejecutaría automáticamente en sus navegadores, llenando rápidamente su espacio en disco. Esto podría provocar una ralentización significativa del sistema o incluso un colapso, especialmente para usuarios que no están al tanto del ataque.

  2. Bibliotecas JavaScript de terceros comprometidas: Muchos sitios web y aplicaciones web dependen de bibliotecas JavaScript de terceros. Si un atacante compromete una de estas bibliotecas inyectando el script IFA, cualquier sitio web que use la biblioteca afectada podría convertirse sin saberlo en un vector del ataque. Esto resultaría en una inundación de disco generalizada en cualquier dispositivo de usuario que cargue el script comprometido.

  3. Extensiones de navegador maliciosas: Los atacantes podrían desarrollar o comprometer extensiones de navegador para incluir el script IFA. Una vez instalada, la extensión podría ejecutar el script silenciosamente en segundo plano, inundando el espacio en disco del usuario cada vez que abra su navegador. Este escenario es particularmente peligroso porque las extensiones del navegador suelen tener permisos amplios.

  4. Anuncios web infectados: Un atacante podría colocar un anuncio malicioso que contenga el script IFA en un sitio web legítimo. Cuando los usuarios carguen la página con el anuncio infectado, el script se ejecutaría y comenzaría a consumir su espacio en disco. Este método podría dirigirse a un gran número de usuarios, especialmente en sitios web de alto tráfico.

  5. Campañas de phishing: Los atacantes podrían enviar correos electrónicos de phishing que dirijan a las víctimas a un sitio web que aloje el script IFA. Una vez que el objetivo visite el sitio web malicioso, el script se ejecutaría y comenzaría a llenar su espacio en disco. Este método podría ser particularmente efectivo en ataques dirigidos contra individuos u organizaciones.

Demostración: Ve IFA en Acción

Para ayudarte a comprender mejor el impacto de IFA, he creado una demostración en un sitio web dedicado. Esta demostración web está diseñada para que puedas ver el exploit en acción y comprender sus efectos potenciales de manera sencilla.

  1. Explora la demostración en vivo: Visita https://ifa.run para interactuar con la demostración en vivo. Esto te permitirá experimentar de primera mano cómo este ataque puede afectar a tu navegador y sistema. Creé esta demostración para asegurarme de que cualquiera pueda probar y ver las consecuencias del exploit fácilmente. Recuerda realizar esta prueba con precaución y en un entorno controlado.

  2. Demostración de inyección oculta: Para una demostración más sutil, visita https://ifa.run/hidden.html. Esta versión opera de forma invisible, realizando la inyección directamente sin gráficos visibles ni interfaz de usuario como la demostración principal.

  3. Mira el video de la PoC: Si prefieres una explicación guiada, también he creado un video de demostración. En el video, te guío a través de la ejecución de IFA y te muestro los efectos que puede causar: Video de la PoC.

Prueba de la PoC Localmente

Si estás interesado en probar la PoC localmente, sigue estos sencillos pasos. Te guiaremos a través de la inclusión del script IFA.js y la ejecución del exploit con datos personalizados.

Paso 1: Incluir el Script

Primero, debes incluir el script IFA.js en tu archivo HTML. Tienes dos opciones:

  1. Script local: Si tienes el archivo IFA.js descargado, puedes incluirlo directamente:
root@kitploit:~
<script src="IFA.js"></script>
  1. Enlace CDN: Alternativamente, puedes cargar el script desde un CDN, que es más rápido y conveniente:
root@kitploit:~
<script src="https://cdn.jsdelivr.net/gh/jofpin/IFA/IFA.js"></script>

Usar el enlace CDN es especialmente útil para probar el exploit en diferentes sitios web o aplicaciones web sin necesidad de alojar el script tú mismo.

Paso 2: Personalizar y Ejecutar el Exploit

Una vez que hayas incluido el script, estás listo para ejecutar el exploit. El script IFA te permite personalizar los datos que se inyectarán. Así es como se hace:

  1. Inserta tu imagen en Base64: Convierte una imagen a formato Base64 e insértala en el campo img.

  2. Inserta tu texto personalizado: Ingresa cualquier texto que desees usar en el campo txt.

Aquí hay un ejemplo de cómo ejecutar el exploit:

root@kitploit:~

IFA.run({
   img: "data:image/webp;base64,UklGRpZBAwBXRUJQV...", // Insert your Base64 image here
   txt: "IFA" // Insert your custom text
});

Explicación:

  • img: Aquí es donde colocas la imagen codificada en Base64. La imagen se inyectará directamente, asegurando que el exploit se ejecute más rápido y de manera más eficiente al evitar solicitudes a servidores externos.

  • txt: Aquí ingresas el texto que se almacenará en la base de datos. Puedes personalizar este texto para probar diferentes escenarios.

Paso 3: Observa los Resultados

Después de ejecutar el script, observa cómo se comporta el exploit. Deberías notar:

  • Uso del espacio en disco: El espacio en disco debería llenarse rápidamente a medida que el script escribe datos continuamente en IndexedDB.

  • Rendimiento del sistema: Puedes observar una degradación significativa en el rendimiento del sistema, con tiempos de respuesta más lentos y posible inestabilidad.

  • Comportamiento del navegador: El exploit debería evitar que el navegador colapse inmediatamente, manteniendo el ataque persistente y llevando eventualmente a un disco lleno.

Notas importantes:

  • Usa un entorno controlado: Asegúrate de probar en un entorno controlado, ya que esta PoC puede causar inestabilidad en el sistema.

  • Codificación Base64: Al usar Base64 para la imagen, la inyección se maneja localmente, lo que previene posibles errores y hace que el exploit sea más efectivo.

Recomendaciones para la Mejora de los Navegadores

La exposición de esta vulnerabilidad debe servir como un llamado a la acción para los desarrolladores de navegadores. Aquí hay algunas medidas que podrían implementarse para prevenir tales ataques:

  • Implementación de límites de cuota: Los navegadores deberían establecer límites estrictos en la cantidad de almacenamiento que una aplicación web puede usar a través de IndexedDB. Esto evitaría que un script malicioso consuma todo el espacio en disco.

  • Detección de comportamiento anómalo: Los navegadores deberían desarrollar mecanismos para detectar y bloquear comportamientos anómalos, como la creación masiva de bases de datos o el almacenamiento de grandes cantidades de datos en un período corto.

  • Alertas al usuario: Cuando se detecte un uso inusual de almacenamiento, el navegador debería alertar al usuario y ofrecer la opción de bloquear la aplicación que intenta explotar la vulnerabilidad.

Comentarios Finales

La creación de IFA es un esfuerzo para mostrar lo que podría suceder si no se toman las medidas necesarias para asegurar las tecnologías web que usamos a diario. IFA no es solo una demostración técnica, sino una advertencia para toda la industria tecnológica: en nuestra búsqueda de innovación, no debemos comprometer la seguridad.

El código tiene el poder de construir o destruir. Asegurémonos de que nuestro legado sea de construcción, no de destrucción. - Jose Pino

Descargo de Responsabilidad

Esta PoC está destinada únicamente a fines educativos y de investigación. Su ejecución debe realizarse en entornos controlados y no debe utilizarse en sistemas de producción o dispositivos que contengan datos importantes. El mal uso de esta PoC podría resultar en daños significativos, y es responsabilidad del usuario asegurarse de que se emplee de manera ética.

Licencia

El contenido de este proyecto está licenciado bajo la licencia Creative Commons Attribution 3.0, y el código fuente subyacente utilizado para formatear y mostrar ese contenido está licenciado bajo la licencia MIT.

Copyright (c) 2024 por Jose Pino

Descargar herramienta