Java, Groovy ๋ฐ JVM์ฉ ๊ธฐํ ์ธ์ด์ MVC ํจ๋ฌ๋ค์์ ๋ฐ๋ผ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฐ๋ฐํ๋๋ก ์ค๊ณ๋ Grails ์น ํ๋ ์์ํฌ์์ ์ทจ์ฝ์ ์ด ์๋ณ๋์์ต๋๋ค. ์์ฉ ํ๋ก๊ทธ๋จ์ด ์คํ ์ค์ ๋๋ค. ์ด ์ทจ์ฝ์ ์ ๊ณต๊ฒฉ์์๊ฒ ClassLoader์ ๋ํ ์ก์ธ์ค ๊ถํ์ ์ ๊ณตํ๋๋ก ํน๋ณํ ์ค๊ณ๋ ์์ฒญ์ ์ ์กํ์ฌ ์ ์ฉ๋ฉ๋๋ค. ์ด ๋ฌธ์ ๋ ๊ฐ์ฒด๋ฅผ ์์ฑํ ๋์ BindData๋ฅผ ์ฌ์ฉํ์ฌ ์๋์ผ๋ก ๋ฐ์ธ๋ฉํ ๋ ๋ชจ๋ ์ฌ์ฉ๋๋ ๋ฐ์ดํฐ ๋ฐ์ธ๋ฉ ๋ ผ๋ฆฌ์ ๊ฒฐํจ์ผ๋ก ์ธํด ๋ฐ์ํฉ๋๋ค. ์ด ๋ฌธ์ ๋ ๋ฆด๋ฆฌ์ค 3.3.15, 4.1.1, 5.1.9 ๋ฐ 5.2.1์์ ํด๊ฒฐ๋์์ต๋๋ค.
๋ํ ๊ณต๊ฒฉ๋ฐ์ ์ ํ๋ฆฌ์ผ์ด์
์ ์ก์ธ์ค ๊ถํ์ด ํ์ฉํ๋ ํ ๋ชจ๋ ํ์ผ์ ๋ด์ฉ์ ๋ก๋ํ ์ ์๋ tzinfo Ruby ๋ชจ๋์ ์ทจ์ฝ์ ์ ํ์ธํ ์ ์์ต๋๋ค. ์ทจ์ฝ์ ์ TZInfo::Timezone.get ๋ฉ์๋์ ์ง์ ๋ ์๊ฐ๋ ์ด๋ฆ์์ ํน์ ๋ฌธ์ ์ฌ์ฉ์ ๋ํ ์ ์ ํ ๊ฒ์ฌ ๋ถ์กฑ๊ณผ ๊ด๋ จ์ด ์์ต๋๋ค. ์ด ๋ฌธ์ ๋ ๊ฒ์ฆ๋์ง ์์ ์ธ๋ถ ๋ฐ์ดํฐ๋ฅผ TZInfo::Timezone.get์ ์ ๋ฌํ๋ ์ ํ๋ฆฌ์ผ์ด์
์ ์ํฅ์ ๋ฏธ์นฉ๋๋ค. ์๋ฅผ ๋ค์ด, /tmp/payload ํ์ผ์ ์ฝ์ผ๋ ค๋ฉด "foo\n/../../../tmp/payload"์ ๊ฐ์ ๊ฐ์ ์ง์ ํ ์ ์์ต๋๋ค.
์ถ์ฒ : opennet.ru