Resolución de la tarea con pwnable.kr 25 — otp. Límite de tamaño de archivo en Linux

Resolución de la tarea con pwnable.kr 25 — otp. Límite de tamaño de archivo en Linux
En este artículo resolveremos la tarea 25 del sitio pwnable.kr.

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

  • PWN;
  • criptografía (Crypto);
  • tecnologías de red (Network);
  • ingeniería inversa (Reverse Engineering);
  • esteganografía (Stegano);
  • búsqueda y explotación de vulnerabilidades en la WEB.

Además de esto, compartiré mi experiencia en la informática forense, análisis de malware y firmware, ataques a redes inalámbricas y redes computacionales locales, realización de pentests y escritura de exploits.

Para que puedan conocer nuevos artículos, software y otra información, he creado un canal en Telegram y un grupo para discutir cualquier pregunta en el área de seguridad informática. También consideraré personalmente y responderé a todas sus solicitudes, preguntas, propuestas y recomendaciones de forma individual..

Toda la información se presenta exclusivamente 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 adquiridos al estudiar este documento.

Solución de la tarea otp

Continuamos con la segunda sección. Diremos de inmediato que es más complicada que la primera, pero esta vez nos proporcionan el código fuente del programa. No olviden sobre la discusión aquí (https://t.me/RalfHackerPublicChat) y aquí (https://t.me/RalfHackerChannel). Empecemos.

Hacemos clic en el ícono con la etiqueta otp. Nos dan la dirección y el puerto para conectarnos.

Resolución de la tarea con pwnable.kr 25 — otp. Límite de tamaño de archivo en Linux

Nos conectamos y exploramos el servidor.

Resolución de la tarea con pwnable.kr 25 — otp. Límite de tamaño de archivo en Linux

La bandera que no podemos leer, el programa y su código fuente. Vamos a ver el código fuente.

Resolución de la tarea con pwnable.kr 25 — otp. Límite de tamaño de archivo en Linux

Lo desensamblamos. El programa toma como argumento una contraseña.

Resolución de la tarea con pwnable.kr 25 — otp. Límite de tamaño de archivo en Linux

Luego se guarda en la variable otp 16 bytes aleatorios.

Resolución de la tarea con pwnable.kr 25 — otp. Límite de tamaño de archivo en Linux

En la carpeta tmp se crea un archivo con un nombre aleatorio (los primeros 8 bytes de otp) y se escriben 8 bytes aleatorios (los segundos 8 bytes de otp).

Resolución de la tarea con pwnable.kr 25 — otp. Límite de tamaño de archivo en Linux

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

Resolución de la tarea con pwnable.kr 25 — otp. Límite de tamaño de archivo en Linux

Aquí es donde está la vulnerabilidad. Consiste en que el número generado se guarda temporalmente en un archivo. Podemos limitar el tamaño del archivo, por ejemplo, a 0, de modo que al escribir y leer con la contraseña se comparará con 0. Esto se puede hacer así.

# ulimit -f 0

Resolución de la tarea con pwnable.kr 25 — otp. Límite de tamaño de archivo en Linux

Ahora ejecutemos el programa.

Resolución de la tarea con pwnable.kr 25 — otp. Límite de tamaño de archivo en Linux

Recibimos un error. No te preocupes, se puede manejar con el mismo Python.

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

Resolución de la tarea con pwnable.kr 25 — otp. Límite de tamaño de archivo en Linux

Obtenemos la bandera y nuestros fáciles 100 puntos. Y continuamos: en el próximo artículo hablaremos sobre Web. Puedes unirte a nosotros en Telegram.

Fuente: habr.com

Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS 🔥 Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS | ProHoster