์ „์ฒด ๊ธ€

Department of Computer Science and Engineering, 21th, Sungkyunkwan University
Pwnable/FTZ

FTZ - level16 [Buffer Overflow ๐œป]

LEVEL 16 [level16] passcode : about to cause mass (NO DRAG, NO PASSCODE) attackme.c ์ด๋ผ๋Š” ํŒŒ์ผ์ด ์žˆ์ง€๋งŒ ์ฝ๊ธฐ ๊ถŒํ•œ์ด ๊ฑฐ๋ถ€๋˜์–ด ์žˆ๋‹ค. ๊ทธ๋ƒฅ attackme์˜ ์†Œ์Šค ์ฝ”๋“œ์ธ ๊ฒƒ ๊ฐ™๋‹ค. hint์˜ ์ฝ”๋“œ๋ฅผ ์‚ดํŽด๋ณด์ž. ์ƒˆ๋กœ์šด ์˜ค๋ฒ„ํ”Œ๋กœ์šฐ ๋ฌธ์ œ์ด๋‹ค. ๋ฌธ์ œ ํ•ด๊ฒฐ์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. fgets ํ•จ์ˆ˜์—์„œ ์ž…๋ ฅ ๋ฐ›๋Š”๋‹ค. ์•ž์˜ ๋ฒ„ํผ๋“ค์„ ๋‹ค ์ฑ„์šฐ๊ณ  fgets ํ•จ์ˆ˜๊ฐ€ ์ข…๋ฃŒ๋˜๋ฉด ๋‹ค์Œ call ํ•จ์ˆ˜๊ฐ€ ํ˜ธ์ถœ๋˜๋Š”๋ฐ, ์ด๋Š” printit ํ•จ์ˆ˜์˜ ์ฃผ์†Œ๊ฐ€ ๋“ค์–ด๊ฐ€ ์žˆ๋‹ค.(ํ•จ์ˆ˜์˜ ์ด๋ฆ„ = ๊ทธ ํ•จ์ˆ˜์˜ ์ฃผ์†Œ) ๋”ฐ๋ผ์„œ *call์˜ ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ์„ shell ํ•จ์ˆ˜์˜ ์ฃผ์†Œ๋กœ ๋ฎ์œผ๋ฉด ๋งˆ์ง€๋ง‰์— ์‰˜์ด ์‹คํ–‰๋  ๊ฒƒ์ด๋‹ค. ๋”ฐ๋ผ์„œ ์šฐ๋ฆฌ๋Š” ๋ฉ”๋ชจ๋ฆฌ ๊ตฌ์กฐ๋ฅผ ๋ถ„์„ํ•˜๊ณ  shell ํ•จ์ˆ˜์˜ ์ฃผ์†Œ๋ฅผ ์ฐพ์•„์•ผ ํ•œ๋‹ค. ๋จผ์ € ..

Pwnable/FTZ

FTZ - level15 [Buffer Overflow ๐œบ]

LEVEL 15 [level15] passcode : guess what? (NO DRAG, NO PASSCODE) hint์˜ ์ฝ”๋“œ๋ฅผ ๋ถ„์„ํ•ด๋ณด์ž. ์ด๋ฒˆ ๋ฌธ์ œ๋Š” level14์™€ ์•„์ฃผ ์œ ์‚ฌํ•˜์ง€๋งŒ check ๋ณ€์ˆ˜๊ฐ€ ํฌ์ธํ„ฐ ๋ณ€์ˆ˜๋กœ ๋ฐ”๋€ ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค. level15 ์—์„œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํ•ด๊ฒฐํ•œ๋‹ค. check ๋ถ€๋ถ„์— 0xdeadbeef ๊ฐ’์„ ์ง์ ‘ ์ž…๋ ฅํ•ด์ฃผ๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ 0xdeadbeef ๊ฐ’์ด ๋“ค์–ด์žˆ๋Š” ์ฃผ์†Œ ์ž์ฒด๋ฅผ ๋„ฃ์–ด์ฃผ์–ด์•ผ ํ•œ๋‹ค. if ๋ฌธ ์กฐ๊ฑด์‹์˜ check → check์— ์ฃผ์†Œ๋ฅผ ๋„ฃ์–ด์ฃผ๊ฒŒ ๋˜๋ฉด ๊ฐ„์ ‘์ฐธ์กฐ์—ฐ์‚ฐ์ž(*)๊ฐ€ ์ด ์ฃผ์†Œ๊ฐ’ ์•ˆ์— ์žˆ๋Š” ๊ฐ’์„ ์ฝ์–ด์˜ฌ ๊ฒƒ์ด๋‹ค. ์ด ์ฃผ์†Œ์—๋Š” 0xdeadbeef ๊ฐ€ ๋“ค์–ด์žˆ๊ธฐ ๋•Œ๋ฌธ์— if ๋ฌธ์„ pass ํ•œ๋‹ค. attackme ํ”„๋กœ๊ทธ๋žจ์„ tmp๋กœ ๋ณต์‚ฌํ•˜๊ณ  gdb๋ฅผ ์ด์šฉํ•˜์—ฌ ๋œฏ์–ด๋ณด์ž. ..

Pwnable/FTZ

FTZ - level14 [Buffer Overflow ๐œน]

LEVEL 14 [level14] passcode : what the nigga want? (NO DRAG, NO PASSCODE} hint์˜ ์ฝ”๋“œ๋ฅผ ๋ถ„์„ํ•ด๋ณด์ž. ์ผ๋ฐ˜์ ์ธ ๋ฒ„ํผ ์˜ค๋ฒ„ํ”Œ๋กœ์šฐ ๋ฌธ์ œ์ด๋‹ค. ๋ฐ”๋กœ gdb๋ฅผ ์ด์šฉํ•˜์—ฌ attackme ํ”„๋กœ๊ทธ๋žจ์„ ๋œฏ์–ด๋ณด์ž. ํ• ๋‹น๋œ ๋ฉ”๋ชจ๋ฆฌ → (0x38 + 0x8) = 64 ์˜ˆ์ƒ๋˜๋Š” ๋ฉ”๋ชจ๋ฆฌ ๊ตฌ์กฐ → buf(20) + dummy(20) + check(4) + dummy(8) + crap(4)+ SFP(4) + RET(4) = 64 ๊ทธ๋Ÿฌ๋‚˜ ์ด ๋ฌธ์ œ๋Š” ret์„ ๋ฎ์„ ํ•„์š”๋Š” ์—†๋‹ค. ๊ทธ๋ƒฅ check = 0xdeadbeef ์ด๋ฉด system ํ•จ์ˆ˜๋กœ ์‰˜์ด ์‹คํ–‰๋˜๊ธฐ ๋•Œ๋ฌธ์— check์˜ ์œ„์น˜์— 0xdeadbeef ๋ฅผ ๋„ฃ์–ด์ฃผ๋ฉด ๋œ๋‹ค. ๋ฐ”๋กœ ์‰˜์ด ๋”ฐ์กŒ๋‹ค. my-pass ๋ฅผ ์ž…๋ ฅํ•˜์—ฌ pass..

Pwnable/FTZ

FTZ - level13 [Buffer Overflow ๐œธ]

LEVEL 13 [level13] passcode : have no clue (NO DRAG, NO PASSCODE) ๋˜๋‹ค์‹œ attackme ํ”„๋กœ๊ทธ๋žจ์ด ์กด์žฌํ•œ๋‹ค. ํžŒํŠธ ๊ฐ€๋ณด์ž. ๋‹ค์‹œ ์˜ค๋ฒ„ํ”Œ๋กœ์šฐ ๋ฌธ์ œ์ธ ๊ฒƒ ๊ฐ™๋‹ค. ์ฝ”๋“œ๋ฅผ ์‚ดํŽด๋ณด์ž. ๋˜๋‹ค์‹œ ์˜ค๋ฒ„ํ”Œ๋กœ์šฐ ๋ฌธ์ œ์ธ ๊ฒƒ ๊ฐ™๋‹ค. gdb๋กœ ๋œฏ๊ธฐ ์ „์— tmp ๋””๋ ‰ํ† ๋ฆฌ์— attackme ํ”„๋กœ๊ทธ๋žจ์„ ๋ณต์‚ฌํ•ด์ฃผ์ž. ๋ฐ”๋กœ ๋ฉ”๋ชจ๋ฆฌ ๊ตฌ์กฐ๋ฅผ ์‚ดํŽด๋ณด์ž. ํ• ๋‹น๋œ ๋ฉ”๋ชจ๋ฆฌ → (0x418 + 0x8) = 1056 ์˜ˆ์ƒ๋˜๋Š” ๋ฉ”๋ชจ๋ฆฌ ๊ตฌ์กฐ → buf(1024) + dummy(12) + i(4) + dummy(8) + SFP(4) + RET(4) = 1056 buf์˜ ์‹œ์ž‘ ์ฃผ์†Œ๋ฅผ ๊ตฌํ•ด์•ผ ํ•˜๋ฏ€๋กœ, ์šฐ์„  strcpy ํ•จ์ˆ˜๊ฐ€ ํ˜ธ์ถœ๋œ ๋‹ค์Œ์ธ main + 66 ๋ถ€๋ถ„์— break point ๋ฅผ ๊ฑธ์–ด์ค€๋‹ค. ๊ทธ๋ฆฌ๊ณ ..

Lucvs
Lucvs