Hogyan lehet kihasználni a Format String sebezhetőségeket

Bevezetés

az előző cikkekben a nyomtatási funkciókat, a format stringeket és a format string sebezhetőségeket tárgyaltuk. Ez a cikk áttekintést nyújt arról, hogyan lehet kihasználni a Format String sérülékenységeit. Ebben a cikkben egy egyszerű kihívás megoldásával kezdjük, hogy titkot szivárogjunk ki a memóriából. A következő cikkben egy másik példát fogunk megvitatni, ahol láncolunk egy format string sebezhetőséget és puffertúlcsordulási sebezhetőséget a jobb hatás elérése érdekében.

hogyan lehet kihasználni a format string sérülékenységeit?

az előző cikkben említettek szerint az alábbiakban bemutatunk néhány lehetséges támadást a Formátum karakterlánc sebezhetőségével.

  • szivárgó titkok
  • szolgáltatásmegtagadás
  • szivárgó memóriacímek
  • memóriacímek felülírása

ebben a cikkben beszéljük meg az első két elemet.

szivárgó titkok stack

az alábbiakban a sebezhető program fogjuk használni, hogy megértsék a megközelítés kihasználni egy egyszerű format string biztonsági rés, hogy képes legyen olvasni az adatokat a memóriából.

#include < stdio.h>

int main (int argc, char *argv){

char * titkos = “[email protected]”;

printf (argv);

}

amint észrevehetjük, a program sebezhető a format string sérülékenységgel szemben, mivel a printf függvény fogadja a felhasználói bevitelt és kinyomtatja. Meg kell jegyezni, hogy a printf függvényben nincs formátummeghatározó, így a program sérülékeny marad.

futtassuk a programot gdb-vel, ellenőrizzük a fő funkció szétszerelését, és állítsunk be egy töréspontot a printf hívás címére.

$ gdb ./sebezhető

GEF nehogy fő

Dump assembler kód funkció fő:

0x00000000000401136 <+0>: endbr64

0x000000000040113a <+4>: nyomja meg az RBP

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

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé.