Usamos Burp Suite para demostrar un experimento sobre la enumeración de ID de sesiones creadas con lenguaje PHP. El código fuente utilizó un mecanismo vulnerable para crear la ID de sesión asignando un valor numérico en un rango predeterminado y vinculándolo al perfil del usuario. Cuando el ID de sesión no se genera aleatoriamente, la aplicación web es vulnerable a ataques de secuestro de sesión. Usamos el desafío Natas Nivel 18 - 19 de los juegos de guerra OverTheWire con fines de demostración. . Esto fue parte de OverTheWire Juegos de Guerra Natas Nivel 18 – 19

Obtenga notas del certificado OSCP

Notas prácticas de Burp Suite

Natas Nivel 19 Contraseña

8LMJEhKFbMKIL2mxQKjv0aEDdk7zpT0s

Transcripción del vídeo

¿Qué está pasando chicos? Bienvenidos nuevamente a este video de hoy. Estamos haciendo WarGames por cable.
Y vamos a abordar el nivel 18. Entonces, el último video que hicimos fue en el nivel 17. Estaban haciendo el nivel 18. Les voy a recordar, muchachos, por la noche, el nivel o la noche tienen desafíos para la penetración de nuestras aplicaciones web. desafíos de prueba. Entonces nos dirigimos al aviso 18 después de proporcionar la contraseña del nivel anterior.

Veré un formulario de inicio de sesión. Bien, hacemos clic en ver código fuente, ya que se trata de una especie de prueba de lápiz de caja blanca. Tenemos acceso al código fuente de la aplicación. Entonces hacemos clic en Ver código fuente.
¿Y lo primero que notamos aquí es esta línea? Esta línea define una variable llamada Max ID. Esta variable equivale a 640.
Si leemos el código. En esta línea hay una función para crear una identificación. Y como puede ver aquí, se genera la identificación. Estar entre 1 y el ID máximo que se definió anteriormente en el código para que sea igual o igual a 640. Entonces, desplácese hacia abajo más tarde. Vemos aquí la función encargada de generar la sesión.

Y aquí lo que obtenemos si tenemos la sesión correcta. Básicamente, el problema en este código radica aquí en el ID de sesión o este número se usa para generar el ID de sesión. Bueno. Ahora los ID de sesión si el atacante puede adivinarlos, generarlos o encontrar el ID de sesión correcto para el usuario que está a cargo.
El atacante podrá acceder al perfil del usuario sin necesidad de encontrar la contraseña. Por eso llamamos a esto secuestro de sesión. ¿Y cuál es el problema aquí? El problema es que la sesión que se define o se genera es un número generado entre uno y seiscientos cuarenta.

Esto significa que la mayoría de los usuarios que están registrados en este sitio web. Vale, como usuarios. Bien, estos usuarios tienen esas identificaciones entre uno.
Y 640, lo que significa que podemos adivinar qué ID de usuario pertenece a qué usuario y podremos acceder a cualquier perfil de usuario.

Entonces ese es el problema en este código. Ahora, la alternativa segura a esto es generar aleatoriamente el ID de sesión.

No podemos definir un valor o rango específico para el ID de sesión. Bueno. Entonces, lo que hagas aquí, podemos resolver este desafío usando dos métodos. Podemos hacerlo usando Python. Creamos un script y aplicamos Fuerza Bruta al ID de sesión del usuario administrador. Básicamente, vamos a probar números entre uno y seis cuarenta con cada sesión para ver cuál termina con el usuario administrador o necesitaremos usar burp Suite, que usaré en este video porque hemos hecho muchos. desafíos donde hoy resolvemos el desafío usando Python. Vamos a utilizar dulce morado. Regresemos y abramos Burp Suite. Primero echemos un vistazo a la solicitud, digamos que iniciamos admin admin.

Ahora mismo, simulemos una solicitud de inicio de sesión utilizando el nombre de usuario admin y la contraseña admin.
Ahora podemos interceptar la respuesta porque queremos ver la cookie asignada.

Echemos un vistazo aquí. Como pueden ver chicos en la respuesta. Vemos que el ID de sesión está configurado en 498.
Bueno. Ahora lo que vamos a hacer es tomar esto y enviárselo al Intruso. Bien, ahora vamos a reenviar y ahora vamos a configurar nuevamente la intercepción o volver a interceptar la solicitud. Así que actualice.

Ahora simulemos la solicitud una vez más. Muy bien, esta es la solicitud nuevamente y aquí observe que la solicitud es obtener solicitudes.
Y otra cosa a tener en cuenta aquí es el ID de la sesión. Entonces vamos a hacer aquí. Ahora queremos forzar la ID de la sesión para encontrar el número correcto que está vinculado a la cuenta de administrador. Bien, entonces queremos enviar esto al Intruso antes de hacer eso. Tenemos que eliminar esto de alguna manera, tenemos que eliminar esta línea.
Solo queremos conservar el ID de la sesión. Y luego estará listo para ser enviado al intruso.

Adelante. Él definiría las posiciones de la carga útil que se van a despejar y establecería la posición. Desde cero. Entonces aquí resaltamos el ID de la sesión y hacemos clic en AGREGAR. Y ahora el ID de la sesión está resaltado. A continuación, definimos el tipo de carga útil. Entonces configuramos los números del tipo dos y aquí configuramos la secuencia. Así que vamos a empezar desde cero y subir hasta llegar a 1000. Puedes definir más pero no menos de 700 aproximadamente.

140 y luego vamos a iniciar el ataque. Muy bien, ahora que eso ha comenzado.
Como puede ver aquí, todas las solicitudes tienen una longitud similar en la respuesta. Échale un vistazo aquí. La mayoría de ellos son 608 608 607, lo siento, 67, por lo que 67 termina en 68. Así que buscaremos una respuesta que sea muy diferente en tamaño, muy alejada de esta longitud.

Para que sepamos que tenemos una respuesta diferente para esta solicitud. Echamos un vistazo a la solicitud, tomamos nota del ID de la sesión y lo intentaremos. Esperemos ahora.
Bien, entonces el Intruso terminó y aquí encontré que el ID 119 generó la respuesta de riesgo diferente. Entonces lo pondremos como el nuevo ID de sesión y diremos adelante.
Revisando el navegador y como pueden ver muchachos, este es el bastardo para el siguiente nivel. Entonces el ID ideal correcto era 119.

Tutorial en vídeo

Acerca del Autor

Creo notas de ciberseguridad, notas de marketing digital y cursos online. También brindo consultoría de marketing digital que incluye, entre otros, SEO, Google y meta anuncios y administración de CRM.

Ver Artículos