https://learn.dreamhack.io/112#p2477
๋ก๊ทธ์ธ | Dreamhack
dreamhack.io
์ฐ์ a๋ฅผ 8๊ฐ ์ดํ๋ก ์ ๋ ฅํ ๊ฒฝ์ฐ ์๋ฌด๋ฐ ๋ฌธ์ ๋ ์์ด ๋ณด์ธ๋ค.
๋ง์ผ a๋ฅผ 9๊ฐ๋ฅผ ์ ๋ ฅํ๊ฒ ๋๋ค๋ฉด
๋ท๋ถ๋ถ์ tTc(xU8๋ผ๋ ์ด์ํ ๊ฐ์ด ๋ถ๋๋ค.
๋ฉ๋ชจ๋ฆฌ๋ฅผ ๋์ผ๋ก ํ์ธํ๋ฉด ์นด๋๋ฆฌ ์์ญ์๋ ์ ๋ฐ ์์ผ๋ก ๊ฐ์ด ์ ์ฅ๋ผ์๋ ๊ฒ์ด๋ค.
์ a๋ฅผ 8๊ฐ๋ฅผ ์ ๋ ฅํ๋ฉด ์นด๋๋ฆฌ ๊ฐ์ด ์ถ๋ ฅ์ด ๋์ง ์๋๊ฐ?
๊ทธ ์ด์ ๋ ์นด๋๋ฆฌ์ ๋ฌธ์ ๋ ๋ถ๋ถ์๋ \x00์ธ ์ฆ NULL์ ๊ฐ์ง๊ณ ์๊ธฐ ๋๋ฌธ์ printf ์ถ๋ ฅ์ ํ๋ฉด ๋ฌธ์์ ๋์ผ๋ก ์ธ์์ด ๋์ด ์นด๋๋ฆฌ ๊ฐ์ด ํจ๊ป ์ถ๋ ฅ๋์ง ์์ ๊ฒ์ด๋ค.
๊ทธ๋ฌ๋ฏ๋ก ์นด๋๋ฆฌ๋ฅผ ์ ์ถํ๊ธฐ ์ํด์๋ \x00 ๋ถ๋ถ์ ๋ค๋ฅธ ๋ฌธ์๋ก ๋ฎ์ด ์์ด์ ๋๋จธ์ง 7๋ฐ์ดํธ๋ฅผ ๊ฐ์ ธ์ค๊ณ \x00์ ๊ทธ ์์๋ค ๋ถ์ด๋ฉด ์ง์ง ์นด๋๋ฆฌ์ ๊ฐ์ ์ป์ ์ ์๊ฒ ๋๋ ๊ฒ์ด๋ค.
\x00 + canary(7 Bytes)
์นด๋๋ฆฌ ์ฐํ
์์์ ์์๋ธ ๊ณต์์ ์ด์ฉํด
a * 16(buf) + canary( 0x00 + ๋๋จธ์ง canary 7 ๋ฐ์ดํธ ) + SFP + return ์ฃผ์
์ ์ ๋ ฅํ๋ฉด ์นด๋๋ฆฌ๋ฅผ ์ฐํํ ์ค๋ฒํ๋ก์ฐ์ ์ฑ๊ณตํ๋ค.
(hex encoded๋ฅผ ์ฒดํฌํ์ฌ 0x00์ ์ ๋ ฅํด์ฃผ์)
'๐ดCTF > DreamHack' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
DreamHack - blind-command ํ์ด (0) | 2023.09.07 |
---|---|
DreamHack - Robot Only ํ์ด (0) | 2023.05.24 |
DreamHack - Return to Shellcode ํ์ด (0) | 2023.05.01 |
DreamHack - Quiz: x86 Assembly 1 (0) | 2023.05.01 |
DreamHack - Return Address Overwrite (0) | 2023.04.30 |