From fdca358e2964ac72bc4d2734f090639bd7df9e45 Mon Sep 17 00:00:00 2001 From: Translator Date: Wed, 25 Sep 2024 16:32:02 +0000 Subject: [PATCH] Translated ['binary-exploitation/format-strings/README.md'] to af --- binary-exploitation/format-strings/README.md | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/binary-exploitation/format-strings/README.md b/binary-exploitation/format-strings/README.md index 45c04a023..76bba0696 100644 --- a/binary-exploitation/format-strings/README.md +++ b/binary-exploitation/format-strings/README.md @@ -21,7 +21,7 @@ In C **`printf`** is 'n funksie wat gebruik kan word om **te druk** 'n string. D Ander kwesbare funksies is **`sprintf()`** en **`fprintf()`**. -Die kwesbaarheid verskyn wanneer 'n **aanvallers teks as die eerste argument** aan hierdie funksie gebruik word. Die aanvaller sal in staat wees om 'n **spesiale invoer te vervaardig wat** die **printf formaat** string vermoëns misbruik om te lees en **skryf enige data in enige adres (leesbaar/skryfbaar)**. Op hierdie manier in staat om **arbitraire kode uit te voer**. +Die kwesbaarheid verskyn wanneer 'n **aanvaller teks as die eerste argument** aan hierdie funksie gebruik word. Die aanvaller sal in staat wees om 'n **spesiale invoer te vervaardig wat** die **printf formaat** string vermoëns misbruik om te lees en **skryf enige data in enige adres (leesbaar/skryfbaar)**. Op hierdie manier in staat om **arbitraire kode uit te voer**. #### Formateerders: ```bash @@ -66,7 +66,7 @@ return 0; ``` ### **Toegang tot Pointers** -Die formaat **`%$x`**, waar `n` 'n getal is, laat toe om aan printf aan te dui om die n parameter (van die stapel) te kies. So as jy die 4de parameter van die stapel met printf wil lees, kan jy doen: +Die formaat **`%$x`**, waar `n` 'n getal is, laat toe om aan printf aan te dui om die n parameter (van die stapel) te kies. So as jy die 4de param van die stapel met printf wil lees, kan jy doen: ```c printf("%x %x %x %x") ``` @@ -74,7 +74,7 @@ en jy sou van die eerste tot die vierde parameter lees. Of jy kan doen: ```c -printf("$4%x") +printf("%4$x") ``` en lees direk die vierde. @@ -181,8 +181,6 @@ If HOB > LOB\ `[address+2][address]%.[LOB-8]x%[offset+1]\$hn%.[HOB-LOB]x%[offset]` HOB LOB HOB\_shellcode-8 NºParam\_dir\_HOB LOB\_shell-HOB\_shell NºParam\_dir\_LOB - -{% code overflow="wrap" %} ```bash python -c 'print "\x26\x97\x04\x08"+"\x24\x97\x04\x08"+ "%.49143x" + "%4$hn" + "%.15408x" + "%5$hn"' ``` @@ -229,7 +227,7 @@ Dit is moontlik om die skryf aksies van 'n formaat string kwesbaarheid te misbru * [https://guyinatuxedo.github.io/10-fmt\_strings/backdoor17\_bbpwn/index.html](https://guyinatuxedo.github.io/10-fmt\_strings/backdoor17\_bbpwn/index.html) * 32 bit, relro, geen canary, nx, geen pie, formaat string om die adres `fflush` met die win funksie (ret2win) te oorskryf * [https://guyinatuxedo.github.io/10-fmt\_strings/tw16\_greeting/index.html](https://guyinatuxedo.github.io/10-fmt\_strings/tw16\_greeting/index.html) -* 32 bit, relro, geen canary, nx, geen pie, formaat string om 'n adres binne main in `.fini_array` te skryf (sodat die vloei een keer terug draai) en die adres na `system` in die GOT tabel te skryf wat na `strlen` wys. Wanneer die vloei terug na main gaan, word `strlen` uitgevoer met gebruikersinvoer en wys na `system`, dit sal die oorgedraagde opdragte uitvoer. +* 32 bit, relro, geen canary, nx, geen pie, formaat string om 'n adres binne main in `.fini_array` te skryf (sodat die vloei een keer meer terugloop) en die adres na `system` in die GOT tabel te skryf wat na `strlen` wys. Wanneer die vloei terug na main gaan, word `strlen` uitgevoer met gebruikersinvoer en wat na `system` wys, sal dit die oorgedraagde opdragte uitvoer. {% hint style="success" %} Leer & oefen AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\