Tokyo Westerns CTF 2018 - swap returns
0x00. Introduction
)
Concept
int __fastcall __noreturn
๊ฐ์ ๋ ๊ฐ ์ ๋ ฅ๋ฐ๊ณ , ๊ทธ ๊ฐ์ด ๊ฐ๋ฆฌํค๋ ๊ฐ์ ์๋ก ๋ฐ๊ฟ์ค๋ค.
์ฝ๊ฒ ๋งํ๋ฉด ๋ ์ฃผ์๋ฅผ ์ ๋ ฅ๋ฐ์ ์ฃผ์์ ์ ์ฅ๋ ๊ฐ์ ์๋ก ๋ฐ๊ฟ์ค๋ค.
0x01. Vulnerability
๋ฌธ์ ์์ ๊ฐ๋ ฅํ primitive๋ฅผ ์ฃผ์์ง๋ง ์๊ฐ๋ณด๋ค ํด๋ณผ ๋งํ ๊ฒ์ด ์์๋ค.
์ฐ์ ์ง๊ธ ๊ฐ์ง๊ณ ์๋ ๊ฒ์ผ๋ก๋ถํฐ ํ ์ ์๋ ๊ฒ์ ์๊ฐํด๋ณด๋ฉด, ์ฐ๊ธฐ ๊ถํ์ด ์๊ณ , ๊ณ ์ ์ ์ธ ์ฃผ์๊ฐ๋ค๋ผ๋ฆฌ swap์ด ๊ฐ๋ฅํ๋ค.
๋ฐ๋ผ์ ๋จผ์ ์ด๋ฌํ ์กฐ๊ฑด์ด ๋ง๋ ์ฃผ์๋ฅผ ํ์ธํด๋ณด์๋ค.
Start End Offset Perm Path
0x0000000000400000 0x0000000000401000 0x0000000000000000 r-x /home/user/swap_returns
0x0000000000600000 0x0000000000601000 0x0000000000000000 r-- /home/user/swap_returns
0x0000000000601000 0x0000000000602000 0x0000000000001000 rw- /home/user/swap_returns
0x00007ffff7d87000 0x00007ffff7d8a000 0x0000000000000000 rw-
0x00007ffff7d8a000 0x00007ffff7db2000 0x0000000000000000 r-- /usr/lib/x86_64-linux-gnu/libc.so.6
0x00007ffff7db2000 0x00007ffff7f47000 0x0000000000028000 r-x /usr/lib/x86_64-linux-gnu/libc.so.6
0x00007ffff7f47000 0x00007ffff7f9f000 0x00000000001bd000 r-- /usr/lib/x86_64-linux-gnu/libc.so.6
0x00007ffff7f9f000 0x00007ffff7fa0000 0x0000000000215000