Sådan udnyttes Formatstrengssårbarheder

introduktion

i de foregående artikler diskuterede vi udskrivningsfunktioner, formatstrenge og formatstrengssårbarheder. Denne artikel giver et overblik over, hvordan formatstrengssårbarheder kan udnyttes. I denne artikel begynder vi med at løse en simpel udfordring for at lække en hemmelighed fra hukommelsen. I den næste artikel vil vi diskutere et andet eksempel, hvor vi vil kæde en formatstrengssårbarhed og Bufferoverløbssårbarhed for at skabe bedre effekt.

Hvordan kan formatstrengssårbarheder udnyttes?

som nævnt i den foregående artikel er følgende nogle af de angreb, der er mulige ved hjælp af formatstrengssårbarheder.

  • lækkende hemmeligheder
  • lammelsesangreb
  • lækkende hukommelsesadresser
  • overskrivning af hukommelsesadresser

i denne artikel, lad os diskutere de to første punkter.

lækker hemmeligheder fra stakken

Følgende er det sårbare program, vi vil bruge til at forstå tilgangen til at udnytte en simpel formatstrengssårbarhed for at kunne læse data fra hukommelsen.

#Medtag < stdio.h>

int main (int argc, char *argv){

char *secret = “[email protected]”;

printf (argv);

}

som vi kan bemærke, er programmet sårbart over for formatstrengssårbarhed, da printf-funktionen modtager brugerinput og udskriver den. Det skal bemærkes, at der ikke er nogen formatspecifikator, der bruges i printf-funktionen, hvilket efterlader programmet sårbart.

lad os køre programmet ved hjælp af gdb, kontrollere demontering af hovedfunktionen og oprette et breakpoint på adressen til printf-opkald.

$ gdb ./sårbar

GEF Kris disass main

Dump af assembler kode til funktion main:

0h000000000401136 <+0>: endbr64

0h00000000040113a <+4>: skub RBP

0h00000000040113b <+5>: MOV RBP,RSP

0h00000000040113e <+8>: sub rsp,0x20

0x0000000000401142 <+12>: mov DWORD PTR ,edi

0x0000000000401145 <+15>: mov QWORD PTR ,rsi

0x0000000000401149 <+19>: lea rax, # 0x402004

0x0000000000401150 <+26>: mov QWORD PTR ,rax

0x0000000000401154 <+30>: mov rax,QWORD (Read more…)

Skriv et svar

Din e-mailadresse vil ikke blive publiceret.