
Mommy! what is a file descriptor in Linux?
* try to play the wargame your self but if you are ABSOLUTE beginner,
follow this tutorial link: https://youtu.be/971eZhMHQQw
ssh fd@pwnable.kr -p2222 (pw:guest)
File Discriptor ๊ด๋ จ ๋ฌธ์ ์ธ ๊ฒ ๊ฐ๋ค.
์ฐ์ File Descriptor์ ๋ํด ์์๋ณด์.
File Descriptor(FD)๋?
Linux or Unix ๊ณ์ด์ ์์คํ ์์ ํ๋ก์ธ์ค๊ฐ ํ์ผ์ ๋ค๋ฃฐ ๋ ์ฌ์ฉํ๋ ๊ฐ๋ ์ด๋ค.
ํ๋ก์ธ์ค์์ ํน์ ํ์ผ์ ์ ๊ทผํ ๋ ์ฌ์ฉํ๋ ์ถ์์ ์ธ ๊ฐ์ด๋ค.
๊ธฐ๋ณธ์ ์ผ๋ก ํ ๋น๋๋ FD๋ ํ์ค์ ๋ ฅ(stdin), ํ์ค์ถ๋ ฅ(stdout), ํ์ค์๋ฌ(stderr)๋ก ๊ฐ๊ฐ 0, 1, 2๋ผ๋ ์ ์๊ฐ ํ ๋น๋๋ค
๋ฌธ์ ์ ์ ์ํด๋ณด์.
ls ๋ช ๋ น์ด๋ฅผ ์ด์ฉํด ๋๋ ํฐ๋ฆฌ ๋ด์ฉ ๋ชฉ๋ก์ ํ์ธํด๋ณด์.
fd / fd.c / flag ํ์ผ์ด ๋ณด์ธ๋ค.
fd.c ํ์ผ์ ํ์ธํด๋ณด์.
์ฝ๋๋ฅผ ์ฝ์ด๋ณด์.
argc(์ธ์์ ๊ฐ์)๊ฐ 2๋ณด๋ค ์์ผ๋ฉด ํ๋ก๊ทธ๋จ์ด ์ข ๋ฃ๋๋ ๊ฒ์ ์ ์ ์๋ค.
fd๋ atoi(argv[1])์์ 0x1234 ๋บ ๊ฐ์ ๊ฐ์ง๋ค.
- atoi ํจ์๋ 10์ง๋ฒ์ผ๋ก ํ๊ธฐ๋ ๋ฌธ์์ด์ ์ ์๋ก ๋ฐ๊พธ๋ ํจ์์ด๋ค.
read ํจ์๋ 3๊ฐ์ ์ธ์๋ฅผ ๊ฐ์ง๋๋ฐ ์ฒซ ๋ฒ์งธ ์ธ์๋ FD, ๋ ๋ฒ์งธ ์ธ์๋ ์ฝ์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ ๊ณต๊ฐ, ์ธ ๋ฒ์งธ ์ธ์๋ ์ฝ์ ํฌ๊ธฐ์ด๋ค.
๋ง์ฝ buf์ ์ ์ฅ๋ ๊ฐ์ด LETMEWIN\n๊ณผ ์ผ์นํ๋ฉด flag๋ฅผ ์ถ๋ ฅํ๊ณ ํ๋ก๊ทธ๋จ์ ์ข ๋ฃํ๋ค.
๋ ๋ฒ์งธ ์ธ์๋ฅผ 0x1234์ 10์ง์์ธ 4660์ ์ฃผ์ด์ read ํจ์๊ฐ 0(ํ์ค์ ๋ ฅ)์ผ๋ก ์คํ๋๋๋ก fd ํ์ผ์ ์คํํ๊ณ , "LETMEWIN"์ ์ ๋ ฅํด์ฃผ์.
flag๊ฐ ์ถ๋ ฅ๋ ๊ฒ์ ํ์ธํ ์ ์๋ค.
FALG : mommy! I think I know what a file descriptor is!!
'๐๐ฌ๐ฃ๐๐๐ก๐ ๐ป > Pwnable.kr WriteUp' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ Pwnable.kr ] bof (0) | 2022.08.01 |
---|---|
[ Pwnable.kr ] collision (0) | 2022.07.31 |