Ir al contenido principal

Entradas

Mostrando las entradas etiquetadas como picoCTF

Binary Exploitation (XXVI): Solución Reto picoCTF 2018 "echooo"

En este post la  solución a otro d e los retos de la categoría  'Binary Exploitation'  de  la plataforma picoCTF 2018 . El desafío en cuestión, que lleva el título "echooo" , presenta en mi opinión un nivel de dificultad bajo (★★ ☆ ☆☆) . - echooo - Points: 300: Su enunciado dice lo siguiente: ' This program prints any input you give it. Can you leak the flag? Connect with nc 2018shell.picoctf.com 23397. Source '. Se proporcionan dos archivos: un ejecutable ( echo ) y un fichero con el código fuente ( echo.c ). Y como pista ( 'Hint' ) se nos dice: ' If only the program used puts... '. Solución:  utilizo el comando file para ver qué tipo de ejecutable es echo y veo, entre otras cosas, que se trata de un binario con formato ELF (Executable and Linkable format) y que la arquitectura es de 32-bit. Por el enunciado del reto intuyo que para obtener la flag debo explotar la vulnerabilidad de cadena de formato  (en inglés,  'format string' ) ...

Binary Exploitation (XXV): Solución Reto picoCTF 2019 "slippery-shellcode"

Al hilo de los dos posts anteriores, en esta entrada profundizo un poco más en la técnica de inyección de  'shellcode'  (en inglés,  'shellcode injection' ) utilizando para ello la  solución a uno d e los retos de la categoría  'Binary Exploitation'  de  la plataforma picoCTF 2019 . El desafío en cuestión, que lleva el título  " slippery-shellcode " , presenta en mi opinión un  nivel de dificultad medio ( ★ ★ ★ ☆☆ ) . -  slippery-shellcode  - Points: 200 : Su  enunciado  dice lo  siguiente:  ' This program is a little bit more tricky. Can you spawn a shell and use that to read the flag.txt? You can find the program in /problems/slippery-shellcode_1_69e5bb04445e336005697361e4c2deb0 on the shell server. Source ' . Se proporcionan dos archivos: un ejecutable (vuln) y un fichero con el código fuente (vuln.c). Solución:  Este reto es muy similar al del post anterior ,  con la única diferencia de que no sé ex...

Binary Exploitation (XXIV): Solución Reto picoCTF 2018 "shellcode"

Al hilo del post anterior , en esta entrada profundizo un poco en la técnica de inyección de 'shellcode' (en inglés, 'shellcode injection' ) utilizando para ello la solución a uno d e los retos de la categoría  'Binary Exploitation'  de  la plataforma picoCTF 2018 . El desafío en cuestión, que lleva el título  "shellcode" , presenta en mi opinión un  nivel de dificultad medio ( ★ ★ ★ ☆☆ ) . -  shellcode  - Points: 200 : Su  enunciado  dice lo  siguiente:  ' This program executes any input you give it. Can you get a shell? You can find the program in /problems/shellcode_2_0caa0f1860741079dd0a66ccf032c5f4 on the shell server. Source ' . Se proporcionan dos archivos: un ejecutable (vuln) y un fichero con el código fuente (vuln.c). Y como pistas ( 'Hints' ) se nos dan las siguientes: -  'Maybe try writing some shellcode?' . -  'You also might be able to find some good shellcode online' . Solución:  Me conecto al servidor...

Binary Exploitation (V): Solución Reto picoCTF 2018 "got-2-learn-libc"

En este post pongo la solución a otro de los retos de la categoría 'Binary Exploitation' de  la plataforma picoCTF 2018 . El desafío en cuestión, que lleva el título  "got-2-learn-libc" , presenta en mi opinión un  nivel de dificultad medio ( ★ ★ ★ ☆☆ ) . -  got-2-learn-libc  - Points: 250 : Su  enunciado  dice lo siguiente:  ' This program gives you the address of some system calls. Can you get a shell? You can find the program in /problems/got-2-learn-libc_4_526cc290dde8d914a30538d3d0ac4ef1 on the shell server. Source ' . Se proporcionan dos archivos: un ejecutable (vuln) y un fichero con el código fuente (vuln.c). Y como pistas ( 'Hints' ) se nos dan las siguientes: -  'try returning to systems calls to leak information' . -  'don't forget you can always return back to main()' . Solución:  Lo primero que hago es ejecutar el programa; se muestran una serie de direcciones de algunas llamadas al sistema, se me pi...

Binary Exploitation (IV): Solución Reto picoCTF 2019 "NewOverFlow-1"

Hasta ahora en los retos de la categoría 'Binary Exploitation'  que he puesto en este blog se han visto involucrados ejecutables de 32 bits, ¿se explotaría igual la vulnerabilidad  de desbordamiento de 'buffer'  (en inglés, 'buffer overflow' ) con ejecutables de 64 bits? . Voy por partes. En este primer post explico cómo  tomar el control del flujo de un ejecutable de 64 bits vulnerable  y conseguir que el programa ejecute una determinada parte de él que nosotros queramos. Para ello  utilizo uno de  los retos de la plataforma picoCTF 2019 . El desafío en cuestión, que lleva el título  "NewOverFlow-1" , presenta en mi opinión un  nivel de dificultad alto ( ★ ★ ★ ★ ☆ ) . Para saber por qué le asigno ese nivel de dificultad hay que esperar al final de esta entrada :). -  NewOverFlow-1  - Points: 200 : Su  enunciado  dice lo siguiente:  ' Lets try moving to 64-bit, but don't worry we'll start easy. Overflow the...

Binary Exploitation (III): Solución Reto picoCTF 2018 "buffer overflow 2"

En los dos posts anteriores  puse sendas soluciones a dos retos tipo CTF de la categoría  'Binary Exploitation'  ( "Boofy" y "buffer overflow 1" ) en las que  expliqué brevemente cómo explotar la vulnerabilidad de desbordamiento de  'buffer'  (en inglés,  'buffer overflow' )  para sobrescribir el valor de una variable  y  para tomar el control del flujo de un programa vulnerable , respectivamente. Pues bien, en esta entrada doy un paso más que se puede considerar como la suma de los dos casos anteriores. Para ello, como en el post anterior ,  utilizo uno de  los retos de la plataforma picoCTF 2018 . En este desafío debo obtener el  control sobre el flujo del programa , para que éste salte o bifurque a una función determinada, y sobre el contenido de dos variables , que debo pasar como parámetros a dicha función. El desafío en cuestión, que lleva el título  "buffer overflow 2" , presenta un  nivel de d...

Binary Exploitation (II): Solución Reto picoCTF 2018 "buffer overflow 1"

En el post anterior puse la solución a un reto de la categoría 'Binary Exploitation' en la que expliqué brevemente cómo explotar la vulnerabilidad de desbordamiento de 'buffer' (en inglés, 'buffer overflow' ) para sobrescribir el valor de una variable con el objetivo de que al ejecutarse el programa vulnerable éste muestre la 'flag' . Pues bien,  en este post doy un paso más para ilustrar cómo se puede explotar dicha vulnerabilidad para tomar el control del flujo de un programa vulnerable  y conseguir que éste ejecute lo que lo que nosotros queramos. Para ello utilizo uno de los retos de la plataforma picoCTF 2018 . El desafío en cuestión, que lleva el título  "buffer overflow 1" , presenta un  nivel de dificultad medio ( ★ ★ ★ ☆☆ ) . -  buffer overflow 1 - Points: 200 : Su  enunciado  dice lo siguiente:  ' Okay now you're cooking! This time can you overflow the buffer and return to the flag function in this program? You ca...