Print Stack Canary
Last updated
Last updated
AWS ํดํน ํ์ต ๋ฐ ์ค์ต:HackTricks Training AWS Red Team Expert (ARTE) GCP ํดํน ํ์ต ๋ฐ ์ค์ต: HackTricks Training GCP Red Team Expert (GRTE)
์คํ ์ค๋ฒํ๋ก์ฐ ์ทจ์ฝํ ํ๋ก๊ทธ๋จ์ด puts ํจ์๋ฅผ ์คํ ์ค๋ฒํ๋ก์ฐ์ ์ผ๋ถ๋ฅผ ๊ฐ๋ฆฌํค๋๋ก ์คํํ ์ ์๋ ์ํฉ์ ์์ํด๋ณด์ธ์. ๊ณต๊ฒฉ์๋ ์บ๋๋ฆฌ์ ์ฒซ ๋ฒ์งธ ๋ฐ์ดํธ๊ฐ ๋ ๋ฐ์ดํธ(\x00
)์ด๊ณ ๋๋จธ์ง ์บ๋๋ฆฌ๋ ๋๋ค ๋ฐ์ดํธ์์ ์๊ณ ์์ต๋๋ค. ๊ทธ๋ผ ๊ณต๊ฒฉ์๋ ์ค๋ฒํ๋ก์ฐ๋ฅผ ์์ฑํ์ฌ ์คํ์ ๋ฎ์ด์์ ์บ๋๋ฆฌ์ ์ฒซ ๋ฒ์งธ ๋ฐ์ดํธ๋ง ๋จ๋๋ก ํ ์ ์์ต๋๋ค.
๊ทธ๋ฐ ๋ค์, ๊ณต๊ฒฉ์๋ ํ์ด๋ก๋์ ์ค๊ฐ์์ puts ๊ธฐ๋ฅ์ ํธ์ถํ์ฌ ์บ๋๋ฆฌ๋ฅผ ๋ชจ๋ ์ถ๋ ฅํ ์ ์์ต๋๋ค(์ฒซ ๋ฒ์งธ ๋ ๋ฐ์ดํธ๋ฅผ ์ ์ธ).
์ด ์ ๋ณด๋ฅผ ํตํด ๊ณต๊ฒฉ์๋ ์บ๋๋ฆฌ๋ฅผ ์๊ณ (๋์ผํ ํ๋ก๊ทธ๋จ ์ธ์ ์์) ์๋ก์ด ๊ณต๊ฒฉ์ ์์ฑํ๊ณ ์ ์กํ ์ ์์ต๋๋ค.
๋ฌผ๋ก , ์ด ์ ์ ์ ๊ณต๊ฒฉ์๊ฐ ํ์ด๋ก๋ ๋ด์ฉ์ ์ถ๋ ฅํ์ฌ ์บ๋๋ฆฌ๋ฅผ ์ ์ถํ๊ณ ๊ทธ ํ์ ์ค์ ๋ฒํผ ์ค๋ฒํ๋ก์ฐ๋ฅผ ๋ณด๋ด๊ธฐ ์ํด ์๋ก์ด ํ์ด๋ก๋๋ฅผ ์์ฑํ ์ ์์ด์ผ ํ๊ธฐ ๋๋ฌธ์ ๋งค์ฐ ์ ํ์ ์ ๋๋ค.
CTF ์์:
64๋นํธ, ASLR ํ์ฑํ๋์ด ์์ง๋ง PIE๊ฐ ์๋ ๊ฒฝ์ฐ, ์ค๋ฒํ๋ก์ฐ๋ฅผ ์์ฑํ์ฌ ์บ๋๋ฆฌ์ 0x00 ๋ฐ์ดํธ๊น์ง ์ฑ์ด ํ puts๋ฅผ ํธ์ถํ์ฌ ์ ์ถํฉ๋๋ค. ์บ๋๋ฆฌ๋ก๋ถํฐ ROP ๊ฐ์ ฏ์ ์์ฑํ์ฌ GOT์์ puts ์ฃผ์๋ฅผ ์ ์ถํ๊ณ system('/bin/sh')
๋ฅผ ํธ์ถํ๋ ROP ๊ฐ์ ฏ์ ํธ์ถํฉ๋๋ค.
32๋นํธ, ARM, relro ์์, ์บ๋๋ฆฌ, nx, pie ์์. ์บ๋๋ฆฌ๋ฅผ ์ ์ถํ๊ธฐ ์ํด puts๋ฅผ ํธ์ถํ๋ ์ค๋ฒํ๋ก์ฐ๋ฅผ ์์ฑํ๊ณ ROP ์ฒด์ธ์ ์ฌ์ฉํ์ฌ system
์ ํธ์ถํฉ๋๋ค.
ํ์ ๋ฌธ์์ด์ ์ํด ์ ๊ณต๋๋ ์์ ์ฝ๊ธฐ๋ก ์บ๋๋ฆฌ๋ฅผ ์ ์ถํ ์ ์์ต๋๋ค. ๋ค์ ์์ ๋ฅผ ํ์ธํ์ธ์: https://ir0nstone.gitbook.io/notes/types/stack/canaries ๋ฐ ๋ค์์์ ํ์ ๋ฌธ์์ด์ ๋จ์ฉํ์ฌ ์์ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์๋ฅผ ์ฝ๋ ๋ฐฉ๋ฒ์ ์ฝ์ ์ ์์ต๋๋ค:
Format Strings์ด ๋์ ๊ณผ์ ๋ ๋งค์ฐ ๊ฐ๋จํ ๋ฐฉ๋ฒ์ผ๋ก ํ์ ๋ฌธ์์ด์ ๋จ์ฉํ์ฌ ์คํ์์ ์บ๋๋ฆฌ๋ฅผ ์ฝ์ต๋๋ค.
AWS ํดํน ํ์ต ๋ฐ ์ค์ต:HackTricks Training AWS Red Team Expert (ARTE) GCP ํดํน ํ์ต ๋ฐ ์ค์ต: HackTricks Training GCP Red Team Expert (GRTE)