Vulnerabilidades WEB

European Voices3 minutes readOct 2nd, 2013
SHARE +

Os planteo una serie escueta a modo de esquema, para conocer vulnerabilidades webs más comunes y peligrosas, que han de tener en cuenta los desarrolladores y los administradores de sistemas.

Con una breve explicación de vulnerabilidad, cómo evitarlas y algún ejemplo.

Teniendo en cuenta que TODAS las aplicaciones tienen bugs y vulnerabilidades que reportan pérdidas económicas y de reputación.

CROSS SITE SCRIPTING

Es código interpretado a través de entrada de usuario, NORMALMENTE Javascript

  • Permite robo de sesión, redirección, ejecutar código malicioso, “BeEF“.
    • Reflejado: ejecución a través de URL o mediante ingeniería social.
    • Almacenado o persistente: el código “javascript”  se guarda en la aplicación.
      • Código fuente:
        (String) page += “<input name=’creditcard’ type=’TEXT‘ value='” + request.getParameter(“CC”) + “‘>“;
      • HTML resultante:
        <input name=’creditcard’ type=’TEXT’ value=’121241242421434‘>
      • Ataque:
        http://www.example.com/buyItem.php?CC=”‘><script>alert(“XSS”);</script>‘”

¿Cómo evitarlo?

  • Validar TODAS las entradas de los usuarios

INYECCIÓN SSQL

Inserción a través de parámetros de entrada de sentencias arbitrarias a la BBDD de la aplicación.

Ejemplos

  • http://www.VICTIMAdelATAQUE/item.php?id=123 or 1=1
  • http://www.VICTIMAdelATAQUE/item.php?id=123; DROP TABLE items;–
  • http://www.VICTIMAdelATAQUE/item.php?id=123 UNION SELECT user,password FROM users;–

RIESGOS

  • Saltarse la autenticación.
  • Volcar la BBDD.
  • Modificar/borrar la BBDD.
  • Ejecutar comandos del sistema.

¿Cómo evitarlo?

Filtrar comillas, comandos… escanear periódicamente.

GESTIÓN DE SESIONES

Riesgo: robo de cookie de sesión.

  • Con la cookie, un atacante podría hacerse pasar por la víctima.
  • ¿Mi web tiene mecanismos para evitar el robo?
  • Caducidad de la sesión.
  • Timeout por inactividad.
  • Cierre de sesión, destrucción cookie.
  • Renovación de cookie al hacer login.
  • Limitación de sesiones concurrentes.
  • Cookie en la URL.
  • Cookie impredecible.
  • Resistente a modificaciones.
  • Transmitidas por canal seguro.
    • HttpOnly
    • secure

Ejemplo

http://VICTIMAdelATAQUE.com/usuario.php;jsessionid=2P0OC2JDPXM0OQSNDLPSKHCJUN2JV

GESTIÓN DE LA AUTORIZACIÓN

Acceso a urls, o recursos del que no se tiene permisos.

  • Edición de contenido.
  • Sección privada de usuario.

Ejemplos

  • Privilegios verticales
    • http://VICTIMAdelATAQUE.com/index.php?idNoticia=1&accion=ver
    • http://VICTIMAdelATAQUE.com/index.php?idNoticia=1&accion=editar
  • Privilegios horizontales
    • http://VICTIMAdelATAQUE.com/index.php?privmsg=140
    • http://VICTIMAdelATAQUE.com/index.php?privmsg=141

¿Qué hacer?

  • Comprobación de control de acceso en cada recurso.
  • ¿Ha iniciado sesión?
  • ¿La sesión tiene permisos suficientes?

FALSIFICACION DE PETICIONES EN SITIOS CRUZADOS CSRF

  • Posibilidad de forzar a un usuario a realizar una acción.
  • Normalmente, en formularios.
  • Se engaña al usuario, para que acceda a una url maliciosa.

OTROS

  • Credenciales enviadas por canal inseguro.
  • Configuración del server insegura.
  • Software vulnerable.
  • Almacenamiento no seguro de contenido sensible.

Posibles mitigaciones para todas las vulnerabilidades

  • Proyecto OWASP, OSSTMM, ISSAF
  • Desarrollo seguro.
  • Revisión de código.
  • Guía de pruebas.

Tags-   alma autenticación autorización canal código fuente código malicioso configuración control de acceso credenciales falsificación de peticiones permisos privilegios redirección riesgo robo de sesión usuarios vulnerabilidades vulnerable web