Imprimir Stack Canary

Reading time: 3 minutes

tip

Aprende y practica AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Aprende y practica GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Apoya a HackTricks

Ampliar stack impreso

Imagina una situaci贸n donde un programa vulnerable a desbordamiento de stack puede ejecutar una funci贸n puts apuntando a parte del desbordamiento de stack. El atacante sabe que el primer byte del canario es un byte nulo (\x00) y el resto del canario son bytes aleatorios. Entonces, el atacante puede crear un desbordamiento que sobrescriba el stack hasta justo el primer byte del canario.

Luego, el atacante llama a la funcionalidad puts en medio de la carga 煤til que imprimir谩 todo el canario (excepto el primer byte nulo).

Con esta informaci贸n, el atacante puede elaborar y enviar un nuevo ataque conociendo el canario (en la misma sesi贸n del programa).

Obviamente, esta t谩ctica es muy restringida ya que el atacante necesita poder imprimir el contenido de su carga 煤til para exfiltrar el canario y luego ser capaz de crear una nueva carga 煤til (en la misma sesi贸n del programa) y enviar el verdadero desbordamiento de buffer.

Ejemplos de CTF:

Lectura Arbitraria

Con una lectura arbitraria como la proporcionada por cadenas de formato podr铆a ser posible filtrar el canario. Revisa este ejemplo: https://ir0nstone.gitbook.io/notes/types/stack/canaries y puedes leer sobre el abuso de cadenas de formato para leer direcciones de memoria arbitrarias en:

Format Strings

tip

Aprende y practica AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Aprende y practica GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Apoya a HackTricks