Hur man utnyttjar sårbarheter i formatsträngar

introduktion

i de tidigare artiklarna diskuterade vi utskriftsfunktioner, formatsträngar och sårbarheter i formatsträngar. Den här artikeln ger en översikt över hur sårbarheter i formatsträngar kan utnyttjas. I den här artikeln börjar vi med att lösa en enkel utmaning att läcka en hemlighet från minnet. I nästa artikel kommer vi att diskutera ett annat exempel, där vi kommer att kedja en formatsträngsårbarhet och buffertspill sårbarhet för att skapa bättre effekt.

hur kan formatera sträng sårbarheter utnyttjas?

som nämnts i föregående artikel är följande några av attackerna möjliga med hjälp av sårbarheter i formatsträngar.

  • läckande hemligheter
  • överbelastning
  • läckande minnesadresser
  • överskrivning av minnesadresser

i den här artikeln, låt oss diskutera de två första objekten.

läckande hemligheter från stack

Följande är det sårbara programmet vi kommer att använda för att förstå tillvägagångssättet för att utnyttja en enkel formatsträngsårbarhet för att kunna läsa data från minnet.

#inkludera <stdio.h>

int Huvud (int argc, röding * argv){

röding *hemlighet = ”[email protected]”;

printf (argv);

}

som vi kan märka är programmet sårbart för formatsträngsårbarhet eftersom printf-funktionen tar emot användarinmatning och skriver ut den. Det bör noteras att det inte finns någon formatspecifikator som används i printf-funktionen och därmed lämnar programmet sårbart.

Låt oss köra programmet med gdb, kontrollera demonteringen av huvudfunktionen och ställa in en brytpunkt på adressen till printf-samtalet.

$ gdb ./sårbar

gef 2ubbi disass Huvud

Dump av assembler kod för funktion Huvud:

0x0000000000401136 <+0>: endbr64

0x000000000040113a <+4>: tryck på RBP

0x00000000040113b <+5>: MOV RBP,RSP

0x000000000040113e <+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…)

Lämna ett svar

Din e-postadress kommer inte publiceras.