¿Posibles vulnerabilidades al permitir que los usuarios establezcan valores de sesión manualmente?

0

Visité este sitio donde pude establecer el idioma en la página principal. Cuando hice clic en el enlace del idioma, obtuve una URL como site.com/index.php?lang=us y fui redirigida a la página de inicio. En la barra de navegación pude ver la bandera de EE. UU. Y cuando miré el código HTML, vi el valor de sesión us en la fuente src.

Así que volví a la página principal y configuré el valor de lang a test , como site.com/index.php?lang=test , se redirigió y realmente cambió el valor de la sesión. La imagen en la barra de navegación no existía y no mostraba nada.

¿Este tipo de cosas podría afectar el sitio de alguna manera?

    
pregunta NBA YoungCode 09.04.2017 - 09:35
fuente

2 respuestas

2

El lang=us thingy no es una sesión. Las partes después del ? en una URL son lo que se llama parámetros de consulta. Como cualquier otra parte de la URL, modificarlos cambia la página que recibe. Eso es normal y totalmente esperado. No es más extraño que yo poder "manipular" el contenido de Google al cambiar lo que está después de q en https://google.com?q=test .

Parece que las cosas a las que configuró el parámetro de consulta lang se repiten en el atributo de imagen src , incluso si el valor no es un código de idioma válido. Eso es un poco descuidado, pero no es un problema de seguridad en sí mismo.

Sin embargo, si no realiza ninguna limpieza de los parámetros de consulta antes de devolverlos a su fuente HTML, será vulnerable a ataques de scripts entre sitios reflejados (XSS). Para saber si el sitio que visitó es vulnerable, deberá realizar más pruebas.

Para saber qué es realmente una sesión, consulte este artículo . Para obtener información sobre cómo protegerlos, lea OWASP .

    
respondido por el Anders 09.04.2017 - 18:51
fuente
2

Sesión es un término con varios significados. Pero en el contexto de la seguridad de la aplicación web y especialmente su etiqueta original session-fixation significa una sesión asociada al usuario, donde esta asociación es única para un usuario específico (es decir, el usuario está registrado) y derechos de acceso específicos , como acceso al correo o cuenta de facebook o similar de este usuario. En este contexto, los ataques que permiten el robo o la asignación de una sesión son problemas de seguridad, ya que permiten el mal uso de la identidad del usuario, es decir, realizar acciones con los permisos del usuario.

Pero, el lenguaje como en su pregunta no se usa para identificar de manera única a un usuario específico y, por lo tanto, no es una sesión con el significado descrito anteriormente. Y el robo o la falsificación del idioma no da como resultado un uso incorrecto de la identidad de los usuarios o los permisos de acceso, ya que el idioma no es exclusivo de esta identidad o permisos específicos. Por lo tanto, no es un problema de seguridad.

    
respondido por el Steffen Ullrich 09.04.2017 - 20:48
fuente

Lea otras preguntas en las etiquetas