ํ๋ก์ ํธ ํ๋ ์ ์ํฌ์์
Snuffleupagus๋ ํ์ค ํ
ํ๋ฆฟ์ ์ฌ์ฉํ์ฌ ๋ณด์์ ๊ฐํํ๊ฑฐ๋ ์์ ๋ง์ ๊ท์น์ ์์ฑํ์ฌ ์
๋ ฅ ๋ฐ์ดํฐ ๋ฐ ํจ์ ๋งค๊ฐ๋ณ์๋ฅผ ์ ์ดํ ์ ์๋ ๊ท์น ์์คํ
์ ์ ๊ณตํฉ๋๋ค. ์๋ฅผ ๋ค์ด "sp.disable_function.function("system").param("command").value_r("[$|;&`\\n]").drop();" ๊ท์น์ด ์์ต๋๋ค. ์์ฉ ํ๋ก๊ทธ๋จ์ ๋ณ๊ฒฝํ์ง ์๊ณ ๋ system() ํจ์ ์ธ์์์ ํน์ ๋ฌธ์ ์ฌ์ฉ์ ์ ํํ ์ ์์ต๋๋ค. ๋ง์ฐฌ๊ฐ์ง๋ก, ๋ค์์ ์์ฑํ ์ ์์ต๋๋ค.
๊ฐ๋ฐ์๊ฐ ์ค์ํ ํ ์คํธ์ ๋ฐ๋ฅด๋ฉด Snuffleupagus๋ ์ฑ๋ฅ์ ๊ฑฐ์ ์ ํ์ํค์ง ์์ต๋๋ค. ์์ฒด ๋ณด์์ ๋ณด์ฅํ๊ธฐ ์ํด(๋ณด์ ๊ณ์ธต์ ์ทจ์ฝ์ฑ์ด ์ถ๊ฐ ๊ณต๊ฒฉ ๋ฒกํฐ๋ก ์์ฉํ ์ ์์) ํ๋ก์ ํธ์์๋ ๋ค์ํ ๋ฐฐํฌํ์ ๊ฐ ์ปค๋ฐ์ ๋ํ ์ฒ ์ ํ ํ ์คํธ๋ฅผ ์ฌ์ฉํ๊ณ ์ ์ ๋ถ์ ์์คํ ์ ์ฌ์ฉํ๋ฉฐ ๊ฐ์ฌ๋ฅผ ๋จ์ํํ๊ธฐ ์ํด ์ฝ๋๊ฐ ํ์ํ๋๊ณ ๋ฌธ์ํ๋ฉ๋๋ค.
์ด์, ์ทจ์ฝ์ ๋ฑ์ ํด๋์ค๋ฅผ ์ฐจ๋จํ๊ธฐ ์ํ ๋ด์ฅ ๋ฉ์๋๊ฐ ์ ๊ณต๋ฉ๋๋ค.
PHP ๋ณด์์ ๊ฐํํ๊ธฐ ์ํด ๋ค์ ๋ชจ๋๊ฐ ์ง์๋ฉ๋๋ค.
- ์ฟ ํค์ ๋ํด "secure" ๋ฐ "samesite"(CSRF ๋ณดํธ) ํ๋๊ทธ๋ฅผ ์๋์ผ๋ก ํ์ฑํํฉ๋๋ค.
์ํธํ ์ฟ ํค; - ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ณต๊ฒฉ ๋ฐ ์์ ํ์ ์ ์๋ณํ๊ธฐ ์ํ ๊ธฐ๋ณธ ์ ๊ณต ๊ท์น ์ธํธ
- "์ ๊ฐ์ ์ ์ญ ํ์ฑํ
์๊ฒฉํ "(์๋ฅผ ๋ค์ด ์ ์ ๊ฐ์ ์ธ์๋ก ๊ธฐ๋ํ ๋ ๋ฌธ์์ด์ ์ง์ ํ๋ ค๋ ์๋๋ฅผ ์ฐจ๋จํฉ๋๋ค.)์ ํ ์กฐ์ ; - ๊ธฐ๋ณธ ์ฐจ๋จ
ํ๋กํ ์ฝ ๋ํผ (์: ๋ช ์์ ์ธ ํ์ดํธ๋ฆฌ์คํธ๋ฅผ ํตํด "phar://" ๊ธ์ง) - ์ฐ๊ธฐ ๊ฐ๋ฅํ ํ์ผ ์คํ ๊ธ์ง
- ํ๊ฐ๋ฅผ ์ํ ํ๋ฐฑ ๋ชฉ๋ก;
- ์ฌ์ฉํ ๋ TLS ์ธ์ฆ์ ํ์ธ์ ํ์ฑํํ๋ ๋ฐ ํ์ํฉ๋๋ค.
๊ณฑ์ฌ ๊ณฑ์ฌํ๋ค; - ์ง๋ ฌํ๋ ๊ฐ์ฒด์ HMAC๋ฅผ ์ถ๊ฐํ์ฌ ์ญ์ง๋ ฌํ๊ฐ ์๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ ์ฅ๋ ๋ฐ์ดํฐ๋ฅผ ๊ฒ์ํ๋์ง ํ์ธํฉ๋๋ค.
- ์์ฒญ ๋ก๊น ๋ชจ๋;
- XML ๋ฌธ์์ ๋งํฌ๋ฅผ ํตํด libxml์ ์ธ๋ถ ํ์ผ ๋ก๋๋ฅผ ์ฐจ๋จํฉ๋๋ค.
- ์ ๋ก๋๋ ํ์ผ์ ํ์ธํ๊ณ ์ค์บํ๊ธฐ ์ํด ์ธ๋ถ ํธ๋ค๋ฌ(upload_validation)๋ฅผ ์ฐ๊ฒฐํ๋ ๊ธฐ๋ฅ
์ด ํ๋ก์ ํธ๋ ํ๋์ค์ ๋๊ท๋ชจ ํธ์คํ
์ด์์
์ฒด ์ค ํ๋์ ์ธํ๋ผ์์ ์ฌ์ฉ์๋ฅผ ๋ณดํธํ๊ธฐ ์ํด ๋ง๋ค์ด์ง๊ณ ์ฌ์ฉ๋์์ต๋๋ค.
"sp.readonly_exec.enable()".
์ถ์ฒ : opennet.ru