์ด๋ฒ์ 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์๊ฒ ์ ๋ฌ ์ํจ๋ค. ๊ทธ๋ฌ๋ ๋ฒํผ ์ค๋ฒ ํ๋ก์ฐ์ ๋ํ ๊ฒ์ฌ๋ฅผ ํ์ง ์์์ผ๋ก,
๋ณด์ ๋ฌธ์ ๋ฅผ ๋ฐ์์ํฌ ์ ์๋ค.
๋๊ธ