Print Stack Canary

Reading time: 3 minutes

tip

Lernen & üben Sie AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Lernen & üben Sie GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Unterstützen Sie HackTricks

Vergrößern des gedruckten Stacks

Stellen Sie sich eine Situation vor, in der ein Programm anfällig für einen Stack-Überlauf eine puts-Funktion aufrufen kann, die auf einen Teil des Stack-Überlaufs zeigt. Der Angreifer weiß, dass das erste Byte des Canaries ein Null-Byte (\x00) ist und der Rest des Canaries zufällige Bytes sind. Dann kann der Angreifer einen Überlauf erzeugen, der den Stack bis zum ersten Byte des Canaries überschreibt.

Anschließend ruft der Angreifer die puts-Funktionalität in der Mitte der Nutzlast auf, die alle Bytes des Canaries druckt (außer dem ersten Null-Byte).

Mit diesen Informationen kann der Angreifer eine neue Attacke erstellen und senden, wobei er den Canary kennt (in derselben Programmsitzung).

Offensichtlich ist diese Taktik sehr eingeschränkt, da der Angreifer in der Lage sein muss, den Inhalt seiner Nutzlast zu drucken, um den Canary zu exfiltrieren und dann eine neue Nutzlast (in der gleichen Programmsitzung) zu erstellen und den echten Buffer-Overflow zu senden.

CTF-Beispiele:

Arbitrary Read

Mit einem willkürlichen Lesen, wie es durch Format-Strings bereitgestellt wird, könnte es möglich sein, den Canary zu leaken. Überprüfen Sie dieses Beispiel: https://ir0nstone.gitbook.io/notes/types/stack/canaries und Sie können darüber lesen, wie man Format-Strings missbraucht, um willkürliche Speicheradressen zu lesen in:

Format Strings

tip

Lernen & üben Sie AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Lernen & üben Sie GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Unterstützen Sie HackTricks