1. Introducción
La fijación de sesión es una técnica que permite a los piratas informáticos secuestrar la sesión de un usuario. Esta técnica aprovecha el hecho de que el servidor no cambia el valor del ID de sesión cada vez que el usuario inicia sesión, sino que utiliza un ID de sesión preexistente. El proceso de ataque incluye obtener una ID de sesión válida (posiblemente accediendo al sitio web ), luego encontrar una manera para que la víctima inicie sesión en el sitio web con esta ID de sesión y, finalmente, cuando la víctima inicie sesión exitosamente, el hacker navegará el sitio web con su cuenta. El escenario específico es el siguiente:
Mallory encuentra un sitio web, como http://unsafe.example.com, que acepta cualquier ID de sesión de la solicitud sin autenticación.
Mallory le enviará a Alice un correo electrónico que contiene el enlace http://unsafe.example.com/?SID=1234.
Alice va a http://unsafe.example.com/?SID=1234. Luego inicie sesión en el sitio web.
Mallory simplemente va a http://unsafe.example.com/?SID=1234 y utiliza el sitio web con la cuenta de Alice.
Mallory puede utilizar los siguientes métodos para configurar cookies para Alice:
Adjunte un script para configurar cookies
Enviar paquete de respuesta HTTP con valor de cookie de MalloryEnviar paquete de respuesta HTTP con valor de cookie de Mallory
Utilice metaetiquetas HTML:

2. Ejemplos
Ejemplo 1: secuencias de comandos del lado del cliente
Sin embargo, similar al escenario mencionado anteriormente, en este caso, el ID de sesión no se pasa en la URL sino en la cookie. Para editar el valor del ID de sesión en la cookie de la víctima, el hacker insertará un fragmento de Javascript:
http://website.kom/document.cookie=”sessionid=abcd”;
Ejemplo 2: etiqueta
Similar a las secuencias de comandos del lado del cliente, pero esta vez el hacker insertará etiquetas adicionales:
http://website.kon/
Ejemplo 3: respuesta del encabezado HTTP
La inserción del ID de sesión también se puede realizar interceptando los paquetes intercambiados entre el cliente y la aplicación web y luego insertando el campo Set-Cookie en el encabezado.
![Web12: Técnica de hackeo de fijación de sesiones Web12: Técnica de hackeo de fijación de sesiones]()
3. Cómo prevenir
La causa de este error es que el servidor no regenera el ID de sesión después de cada inicio de sesión exitoso. Por lo tanto, corregir este error no es difícil, solo necesitamos cambiar el valor de ID de sesión y listo. En PHP, usamos la función session_regenerate_id() para regenerar la sesión.