๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๋ฆฌ๋ฒ„์‹ฑ/Protostar

Buffer Over Flow - Protostar ๋ฌธ์ œ

by Ji-Hoon 2020. 10. 18.

์ด๋ฒˆ์— Buffer Over Flow ๊ด€๋ จ ๋ฌธ์ œ๋ฅผ ํ•œ๋ฒˆ ํ’€์–ด๋ณด์•˜๋‹ค. 

 

์šฐ์„  Buffer Over Flow์˜ ์˜๋ฏธ๋Š” ์•„๋ž˜์™€ ๊ฐ™๋‹ค.

 

ํ”„๋กœ๊ทธ๋žจ์ด ์‹คํ–‰๋  ๋•Œ ์ž…๋ ฅ ๋ฐ›๋Š” ๊ฐ’์ด ๋ฒ„ํผ๋ฅผ ๊ฐ€๋“ ์ฑ„์šฐ๋‹ค ๋ชปํ•ด ๋„˜์ณํ˜๋Ÿฌ ๋ฒ„ํผ ์ดํ›„์˜ ๊ณต๊ฐ„์„ ์นจ๋ฒ”ํ•˜๋Š” ํ˜„์ƒ

 

์ด๋ ‡๊ฒŒ ๊ธ€๋กœ๋งŒ ๋ด์„œ๋Š” ๋น„์ „๊ณต์ž์ธ ๋‚˜๋Š” ์ดํ•ด ํ•˜๊ธฐ๊ฐ€ ์ข€ ํž˜๋“ค์—ˆ๋‹ค... 

Youtube์—์„œ ์•„๋ž˜์™€ ๊ฐ™์ด ์‰ฝ๊ฒŒ ์„ค๋ช… ํ•ด์ฃผ๋Š” ์˜์ƒ์ด ์žˆ์–ด์„œ ์ฐธ๊ณ 

 

 

์šฐ์„  Protostar์— ์žˆ๋Š” Bufferoverflow ๋ฌธ์ œ๋ฅผ ํ’€์–ด ๋ณด์•˜๋‹ค 

 

์ฒซ๋ฒˆ์งธ๋Š” Stack0 ์ด๋‹ค 

์•„๋ž˜์™€ ๊ฐ™์€ ์ฝ”๋“œ๋กœ ๋˜์–ด ์žˆ๋‹ค. 

 

1. ๋จผ์ € ํ•ด๋‹น ์ฝ”๋“œ๋ฅผ kali ์—์„œ ์ปดํŒŒ์ผ ์ง„ํ–‰ ํ–ˆ๋‹ค

   --> ํ•˜์ง€๋งŒ ์ผ๋ฐ˜์ ์ธ ๋ฐฉ๋ฒ•์œผ๋กœ ์ง„ํ–‰ํ•˜๋ฉด ์ทจ์•ฝ์ (Bufferoverflow)์ด ๋‚˜ํƒ€๋‚˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ์•„๋ž˜์˜ ๋ช…๋ น์–ด๋กœ ์ปดํŒŒ์ผ

   --> ์Šคํƒ ๊ณต๊ฒฉ์— ์ทจ์•ฝํ•œ ๊ตฌ์กฐ๋กœ ์ปดํŒŒ์ผ ์ง„ํ–‰

 

2. gcc -z execstack -no-pie -w -o stack0 stack0.c

3. Modified ๋ผ๋Š” ๋ฉ”์ธ ํ•จ์ˆ˜ ๋จผ์ € ์„ ์–ธ

4. ๊ทธ ์œ„์— ์‚ฌ์šฉ์ž๋กœ๋ถ€ํ„ฐ gets ํ•จ์ˆ˜๋ฅผ ํ†ตํ•ด buffer์— ์ž…๋ ฅ์„ ๋ฐ›๋Š”๋‹ค.

 

โ€ป volatile : ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ ์ตœ์ ํ™”์—์„œ ์ œ์™ธํ•˜์—ฌ ํ•ญ์ƒ ๋ฉ”๋ชจ๋ฆฌ์— ์ ‘๊ทผ์ด ํ•˜๋„๋ก ํ•˜๋Š” ํ•จ์ˆ˜.

โ€ป gets :์‚ฌ์šฉ์ž์—๊ฒŒ ์ž…๋ ฅ์„ ๋ฐ›์•„์„œ buffer์—๊ฒŒ ์ „๋‹ฌ ์‹œํ‚จ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋ฒ„ํผ ์˜ค๋ฒ„ ํ”Œ๋กœ์šฐ์— ๋Œ€ํ•œ ๊ฒ€์‚ฌ๋ฅผ ํ•˜์ง€ ์•Š์Œ์œผ๋กœ,

          ๋ณด์•ˆ ๋ฌธ์ œ๋ฅผ ๋ฐœ์ƒ์‹œํ‚ฌ ์ˆ˜ ์žˆ๋‹ค.

๋Œ“๊ธ€