XUT_ / COURSES / PENETRATION TESTER

Vulnerability VIII - Injection

¿Cómo Ocurre?

Los ataques de inyección son probablemente los más antiguos relacionados con la web/APIs y todavía se siguen cometiendo. Las debilidades de inyección ocurren cuando el input del usuario no se filtra y se procesa directamente por la API. Una inyección puede venir de SQL, un SO, XML, PHP, etc.


Impacto Posible

Las debilidades de inyección pueden llevar a divulgación de información, pérdida de datos, Dos, y toma completa de la cuenta. Los ataques exitosos también pueden causar que los intrusos accedan a información sensible o creen nuevas funcionalidades y ejecuten RCE.


Ejemplo Práctico

  1. Algunos usuario de MHT han reportado que su contraseña ha cambiado y que no pueden iniciar sesión en sus cuentas. El equipo de desarrollo se dio cuenta de que Bob había diseñado un endpoint API de login vulnerable /apirule8/user/login_v que no filtraba el input del usuario.
  2. Un atacante requiere el nombre de usuario del objetivo y para la contraseña puede usar ' OR 1=1--' y obtener autorización para dicha cuenta. Vulnerability VIII - Injection
  3. Bob se dio cuenta del error y actualizó el endpoint API a /apirule8/user/login_s y usó queries parametrizadas y filtros ya construidos de Laravel para sanitizar. Vulnerability VIII - Injection

Medidas de Mitigación

  • Asegura usar una librería conocida para la validación del lado del cliente.
  • Si no se usa un framework, la información ofrecida por el usuario debe validarse y después filtrarse y sanitizarse.
  • Añade reglas de seguridad necesarias al Firewall de Aplicación Web (WAF).
  • Usa filtros preconstruidos en frameworks para validar el input del usuario.