๋์ ๋ก๋
๋ฌธ์ ์ ๋ณธ์ง: ์์ ์ค์ ld.so๋ ๋จผ์ ํ๊ฒฝ์์ LD_LIBRARY_PATH ๋ณ์์ ๊ฐ์ ์ถ์ถํ๊ณ _dl_split_path() ํจ์๋ฅผ ์ฌ์ฉํ์ฌ ์ด๋ฅผ ๋ฌธ์์ด ๋ฐฐ์ด(๋๋ ํ ๋ฆฌ ๊ฒฝ๋ก)๋ก ๋ณํํฉ๋๋ค. ๋์ค์ ํ์ฌ ํ๋ก์ธ์ค๊ฐ SUID/SGID ์์ฉ ํ๋ก๊ทธ๋จ์ ์ํด ์์๋ ๊ฒ์ผ๋ก ๋ฐํ์ง๋ฉด ์์ฑ๋ ๋ฐฐ์ด๊ณผ ์ค์ ๋ก LD_LIBRARY_PATH ๋ณ์๊ฐ ์ง์์ง๋๋ค. ๋์์ _dl_split_path()์ ๋ฉ๋ชจ๋ฆฌ๊ฐ ๋ถ์กฑํ๋ฉด(ํ๊ฒฝ ๋ณ์ ํฌ๊ธฐ์ ๋ํ ๋ช ์์ ์ธ 256kB ์ ํ์ผ๋ก ์ธํด ์ด๋ ต์ง๋ง ์ด๋ก ์ ์ผ๋ก๋ ๊ฐ๋ฅํจ) _dl_libpath ๋ณ์๋ NULL ๊ฐ์ ์์ ํ๊ณ ํ์ ๊ฒ์ฌ์์๋ ์ด ๋ณ์์ ๊ฐ์ _dl_unsetenv("LD_LIBRARY_PATH")์ ๋ํ ํธ์ถ์ ๊ฐ์ ๋ก ๊ฑด๋๋๋๋ค.
์ ๋ฌธ๊ฐ๊ฐ ๋ฐ๊ฒฌํ ์ทจ์ฝ์
์ถ๊ฐ: ๋ฌธ์ ์ ๋ฒํธ๊ฐ ํ ๋น๋์์ต๋๋ค.
amd64 ๋ฐ i386(์ด ์ต์คํ๋ก์์ ๋ค๋ฅธ ์ํคํ
์ฒ์ ์ ์ฉ ๊ฐ๋ฅ)
์ด ๋ฌธ์ ๋ ๊ธฐ๋ณธ ์ค์น์์ ์
์ฉ๋ ์ ์์ผ๋ฉฐ chpass ๋๋ passwd suid ์ ํธ๋ฆฌํฐ๋ฅผ ์คํํ ๋ ๊ถํ ์๋ ๋ก์ปฌ ์ฌ์ฉ์๊ฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋์ฒด๋ฅผ ํตํด ๋ฃจํธ๋ก ์ฝ๋๋ฅผ ์คํํ ์ ์๋๋ก ํ์ฉํฉ๋๋ค. ์์
์ ํ์ํ ๋ฉ๋ชจ๋ฆฌ ๋ถ์กฑ ์กฐ๊ฑด์ ์์ฑํ๋ ค๋ฉด setrlimit๋ฅผ ํตํด RLIMIT_DATA ์ ํ์ ์ค์ ํฉ๋๋ค.
์ถ์ฒ : opennet.ru