Resolviendo la tarea con pwnable.kr 25 - otp. Límite de tamaño de archivo de Linux

Resolviendo la tarea con pwnable.kr 25 - otp. Límite de tamaño de archivo de Linux
En este artículo resolveremos la tarea número 25 del sitio. pwnable.kr.

información organizacionalEspecialmente para aquellos que quieran aprender algo nuevo y desarrollarse en cualquiera de las áreas de la información y la seguridad informática, escribiré y hablaré sobre las siguientes categorías:

  • PWN;
  • criptografía (cripto);
  • tecnologías de red (Red);
  • reversa (Ingeniería inversa);
  • esteganografía (Stegano);
  • búsqueda y explotación de vulnerabilidades WEB.

Además, compartiré mi experiencia en informática forense, análisis de malware y firmware, ataques a redes inalámbricas y redes de área local, pentesting y escritura de exploits.

Para que pueda conocer nuevos artículos, software y otra información, creé Canal de telegrama и grupo para discutir cualquier problema en la zona del IIKB. También sus solicitudes personales, preguntas, sugerencias y recomendaciones. Echaré un vistazo y responderé a todos..

Toda la información se proporciona únicamente con fines educativos. El autor de este documento no asume ninguna responsabilidad por cualquier daño causado a cualquier persona como resultado del uso de los conocimientos y métodos obtenidos como resultado del estudio de este documento.

Resolviendo la tarea otp

Seguimos con la segunda sección. Diré de inmediato que es más difícil que el primero, pero esta vez no proporcionan el código fuente del programa. No olvide la discusión aquí (https://t.me/RalfHackerPublicChat) y aquí (https://t.me/RalfHackerChannel). Empecemos.

Haga clic en el icono con la firma otp. Se nos da una dirección y un puerto para conectarnos.

Resolviendo la tarea con pwnable.kr 25 - otp. Límite de tamaño de archivo de Linux

Nos conectamos y miramos alrededor del servidor.

Resolviendo la tarea con pwnable.kr 25 - otp. Límite de tamaño de archivo de Linux

La bandera que no podemos leer es el programa y su código fuente. Veamos la fuente.

Resolviendo la tarea con pwnable.kr 25 - otp. Límite de tamaño de archivo de Linux

Vamos a retomarlo. El programa toma una contraseña como argumento.

Resolviendo la tarea con pwnable.kr 25 - otp. Límite de tamaño de archivo de Linux

Además, se almacenan 16 bytes aleatorios en la variable otp.

Resolviendo la tarea con pwnable.kr 25 - otp. Límite de tamaño de archivo de Linux

Se crea un archivo con un nombre aleatorio en la carpeta tmp (los primeros 8 bytes son otp) y se escriben en él 8 bytes aleatorios (los segundos 8 bytes son otp).

Resolviendo la tarea con pwnable.kr 25 - otp. Límite de tamaño de archivo de Linux

Por alguna razón, el valor del archivo creado se lee y se compara con la contraseña ingresada.

Resolviendo la tarea con pwnable.kr 25 - otp. Límite de tamaño de archivo de Linux

Aquí hay una vulnerabilidad. Consiste en el guardado intermedio del número generado en un archivo. Podemos limitar el tamaño del archivo, por ejemplo, a 0, luego al escribir y leer, se comparará 0 con la contraseña. Puedes hacerlo así.

# ulimit -f 0

Resolviendo la tarea con pwnable.kr 25 - otp. Límite de tamaño de archivo de Linux

Ahora ejecutemos el programa.

Resolviendo la tarea con pwnable.kr 25 - otp. Límite de tamaño de archivo de Linux

Recibimos un error. No importa, se puede procesar usando el mismo Python.

python -c "import os, signal; signal.signal(signal.SIGXFSZ, signal.SIG_IGN); os.system('./otp 0')" 

Resolviendo la tarea con pwnable.kr 25 - otp. Límite de tamaño de archivo de Linux

Conseguimos la bandera y nuestros 100 puntos fáciles. Y seguimos: en el próximo artículo tocaremos la Web. Puedes unirte a nosotros en Telegram.

Fuente: habr.com

Añadir un comentario