Fuga una entrada GOT utilizando return-to-printf @ plt

2

Tengo un pequeño binario compilado como no circular, pero ASLR está habilitado, por lo que las bibliotecas compartidas son aleatorias. Mi plan era filtrar cualquier dirección libc de GOT al regresar a plt, pero el único plt-stub útil que tengo es un printf. Anteriormente escribí un exploit de trabajo con este método, cuando podía usar puts, pero en este caso, la única salida que obtengo después de regresar a printf @ plt es una cadena vacía.

No pude descubrir la razón de este comportamiento hasta ahora; ¿Por qué printf actúa así? ¿Es posible incluso filtrar una dirección de esta manera?

    
pregunta awerv 14.02.2018 - 02:06
fuente

1 respuesta

1

Sí, creo que es posible filtrar una dirección usando printf . En puts solo necesita pasar un argumento a la función, la cadena que desea escribir en la salida estándar, y en el caso de un desbordamiento de búfer, la dirección de la función que desea filtrar. En printf también debe pasar un especificador de formato. Hay una redacción aquí que demuestra exactamente eso.

    
respondido por el game0ver 23.03.2018 - 23:05
fuente

Lea otras preguntas en las etiquetas