๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐ŸดCTF/DreamHack

DreamHack - Mitigation: Stack Canary ์‹ค์Šต ๋ฌธ์ œ(์นด๋‚˜๋ฆฌ ๊ฐ’ ๊ตฌํ•˜๊ธฐ)

by Janger 2023. 5. 1.
728x90
๋ฐ˜์‘ํ˜•

 

https://learn.dreamhack.io/112#p2477

 

๋กœ๊ทธ์ธ | Dreamhack

 

dreamhack.io

 

์šฐ์„  a๋ฅผ 8๊ฐœ ์ดํ•˜๋กœ ์ž…๋ ฅํ•  ๊ฒฝ์šฐ ์•„๋ฌด๋Ÿฐ ๋ฌธ์ œ๋Š” ์—†์–ด ๋ณด์ธ๋‹ค. 

๋งŒ์ผ a๋ฅผ 9๊ฐœ๋ฅผ ์ž…๋ ฅํ•˜๊ฒŒ ๋œ๋‹ค๋ฉด 

 

๋’ท๋ถ€๋ถ„์— tTc(xU8๋ผ๋Š” ์ด์ƒํ•œ ๊ฐ’์ด ๋ถ™๋Š”๋‹ค. 

 

๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๋ˆˆ์œผ๋กœ ํ™•์ธํ•˜๋ฉด ์นด๋‚˜๋ฆฌ ์˜์—ญ์—๋Š” ์ €๋Ÿฐ ์‹์œผ๋กœ ๊ฐ’์ด ์ €์žฅ๋ผ์žˆ๋Š” ๊ฒƒ์ด๋‹ค. 

 

์™œ a๋ฅผ 8๊ฐœ๋ฅผ ์ž…๋ ฅํ•˜๋ฉด ์นด๋‚˜๋ฆฌ ๊ฐ’์ด ์ถœ๋ ฅ์ด ๋˜์ง€ ์•Š๋Š”๊ฐ€?

 

๊ทธ ์ด์œ ๋Š” ์นด๋‚˜๋ฆฌ์— ๋ฌธ์ž ๋ ๋ถ€๋ถ„์—๋Š” \x00์ธ ์ฆ‰ NULL์„ ๊ฐ€์ง€๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์— printf ์ถœ๋ ฅ์„ ํ•˜๋ฉด ๋ฌธ์ž์˜ ๋์œผ๋กœ ์ธ์‹์ด ๋˜์–ด ์นด๋‚˜๋ฆฌ ๊ฐ’์ด ํ•จ๊ป˜ ์ถœ๋ ฅ๋˜์ง€ ์•Š์€ ๊ฒƒ์ด๋‹ค. 

๊ทธ๋Ÿฌ๋ฏ€๋กœ ์นด๋‚˜๋ฆฌ๋ฅผ ์œ ์ถ”ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” \x00 ๋ถ€๋ถ„์„ ๋‹ค๋ฅธ ๋ฌธ์ž๋กœ ๋ฎ์–ด ์”Œ์–ด์„œ ๋‚˜๋จธ์ง€ 7๋ฐ”์ดํŠธ๋ฅผ ๊ฐ€์ ธ์˜ค๊ณ  \x00์„ ๊ทธ ์•ž์—๋‹ค ๋ถ™์ด๋ฉด ์ง„์งœ ์นด๋‚˜๋ฆฌ์˜ ๊ฐ’์„ ์–ป์„ ์ˆ˜ ์žˆ๊ฒŒ ๋˜๋Š” ๊ฒƒ์ด๋‹ค. 

 

\x00 + canary(7 Bytes)

 

 

 

์นด๋‚˜๋ฆฌ ์šฐํšŒ

 

 

์œ„์—์„œ ์•Œ์•„๋‚ธ ๊ณต์‹์„ ์ด์šฉํ•ด

a * 16(buf) + canary(  0x00 + ๋‚˜๋จธ์ง€ canary 7 ๋ฐ”์ดํŠธ  ) + SFP + return ์ฃผ์†Œ

์„ ์ž…๋ ฅํ•˜๋ฉด ์นด๋‚˜๋ฆฌ๋ฅผ ์šฐํšŒํ•œ ์˜ค๋ฒ„ํ”Œ๋กœ์šฐ์— ์„ฑ๊ณตํ•œ๋‹ค. 

 

(hex encoded๋ฅผ ์ฒดํฌํ•˜์—ฌ 0x00์„ ์ž…๋ ฅํ•ด์ฃผ์ž)

 

 

 

728x90
๋ฐ˜์‘ํ˜•

'๐ŸดCTF > DreamHack' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

DreamHack - blind-command ํ’€์ด  (0) 2023.09.07
DreamHack - Robot Only ํ’€์ด  (0) 2023.05.24
DreamHack - Return to Shellcode ํ’€์ด  (0) 2023.05.01
DreamHack - Quiz: x86 Assembly 1  (0) 2023.05.01
DreamHack - Return Address Overwrite  (0) 2023.04.30