El código fuente:

Este segundo reto que nos proponen es practicamente igual que el primero, o por lo menos lleva las mismas braguitas.

 

Para superar el reto la variable modified tiene que ser igual a 0x61626364, lo que viene siendo "dcba" en hexadecimal (little endian). A la vez vemos que el buffer reservado es de 64 caracteres y 'modified' se iguala a cero justo antes del condicional... esta bastante claro de que va todo esto, pero vamos a verlo con radare:

La instrucción 0x080484a7 va a pasar a eax un cero que hay en esp+0x5c. Y en la siguiente instrucción lo va a comparar con 0x61626364. (dcba)

 

Como la función strcpy es muy chula y no "filtra" los tamaños, vamos a poder sobrescribir el 0 de esp+0x5c con >64 caracteres:

 

Sencillito de momento!


No es posible ver el contenido de Powr.io debido a tu configuración de cookies actual. Haz clic en la Política de cookies (funcional y marketing) para aceptar la Política de cookies de Powr.io y poder ver el contenido. Puedes encontrar más información al respecto en la Política de privacidad de Powr.io.