JunOS ์ด์ ์ฒด์ ๊ฐ ํ์ฌ๋ Juniper ๋คํธ์ํฌ ์ฅ์น์ ์ฌ์ฉ๋๋ J-Web ์น ์ธํฐํ์ด์ค์์ ์ฌ๋ฌ ๊ฐ์ง ์ทจ์ฝ์ ์ด ํ์ธ๋์์ต๋๋ค. ์ด ์ค ๊ฐ์ฅ ์ํํ ์ทจ์ฝ์ (CVE-2022-22241)์ ์ฌ์ฉ์๊ฐ ์์ด ์์คํ ์์ ์๊ฒฉ์ผ๋ก ์ฝ๋๋ฅผ ์คํํ ์ ์๊ฒ ํด์ค๋๋ค. ํน๋ณํ ์ค๊ณ๋ HTTP ์์ฒญ์ ์ ์กํ์ฌ ์ธ์ฆํฉ๋๋ค. Juniper ์ฅ๋น ์ฌ์ฉ์๋ ํ์จ์ด ์ ๋ฐ์ดํธ๋ฅผ ์ค์นํ๋ ๊ฒ์ด ์ข์ต๋๋ค. ์ด๊ฒ์ด ๊ฐ๋ฅํ์ง ์์ ๊ฒฝ์ฐ ์น ์ธํฐํ์ด์ค์ ๋ํ ์ก์ธ์ค๊ฐ ์ธ๋ถ ๋คํธ์ํฌ์์ ์ฐจ๋จ๋๊ณ ์ ๋ขฐํ ์ ์๋ ํธ์คํธ๋ก๋ง ์ ํ๋๋์ง ํ์ธํ์ญ์์ค.
์ทจ์ฝ์ ์ ๋ณธ์ง์ ์ธ์ฆ๊ฒ์ฌ ์ ๋จ๊ณ์์ ์ ๋์ฌ๋ฅผ ์ฝํ ์ธ ํ์์ผ๋ก ํํฐ๋งํ์ง ์๊ณ /jsdm/ajax/logging_browse.php ์คํฌ๋ฆฝํธ์์ ์ฌ์ฉ์๊ฐ ์ ๋ฌํ ํ์ผ ๊ฒฝ๋ก๋ฅผ ์ฒ๋ฆฌํ๋ค๋ ์ ์ด๋ค. ๊ณต๊ฒฉ์๋ ์ด๋ฏธ์ง๋ฅผ ๊ฐ์ฅํ์ฌ ์ ์ฑ phar ํ์ผ์ ์ ์กํ๊ณ "Phar deserialization" ๊ณต๊ฒฉ ๋ฐฉ๋ฒ(์: "filepath=phar:/path/pharfile.jpg ์ง์ )์ ์ฌ์ฉํ์ฌ phar ์์นด์ด๋ธ์ ์๋ PHP ์ฝ๋๋ฅผ ์คํํ ์ ์์ต๋๋ค. "๋ผ๊ณ ์์ฒญํฉ๋๋ค.)
๋ฌธ์ ๋ PHP ํจ์ is_dir()์ ์ฌ์ฉํ์ฌ ์ ๋ก๋๋ ํ์ผ์ ํ์ธํ ๋ ์ด ํจ์๊ฐ "phar://"๋ก ์์ํ๋ ๊ฒฝ๋ก๋ฅผ ์ฒ๋ฆฌํ ๋ Phar Archive์ ๋ฉํ๋ฐ์ดํฐ๋ฅผ ์๋์ผ๋ก ์ญ์ง๋ ฌํํ๋ค๋ ๊ฒ์ ๋๋ค. file_get_contents(), fopen(), file(), file_exists(), md5_file(), filemtime() ๋ฐ filesize() ํจ์์์ ์ฌ์ฉ์ ์ ๊ณต ํ์ผ ๊ฒฝ๋ก๋ฅผ ์ฒ๋ฆฌํ ๋ ์ ์ฌํ ํจ๊ณผ๊ฐ ๊ด์ฐฐ๋ฉ๋๋ค.
๊ณต๊ฒฉ์๋ phar ์์นด์ด๋ธ ์คํ์ ์์ํ๋ ๊ฒ ์ธ์๋ ์ด๋ฅผ ์ฅ์น์ ๋ค์ด๋ก๋ํ ์ ์๋ ๋ฐฉ๋ฒ์ ์ฐพ์์ผ ํ๋ค๋ ์ ์์ ๊ณต๊ฒฉ์ด ๋ณต์กํฉ๋๋ค(/jsdm/ajax/logging_browse.php์ ์ก์ธ์คํ์ฌ ๊ฒฝ๋ก๋ง ์ง์ ํ ์ ์์). ์ด๋ฏธ ์กด์ฌํ๋ ํ์ผ์ ์คํํฉ๋๋ค). ์ฅ์น์ ํ์ผ์ ๊ฐ์ ธ์ค๋ ๊ฐ๋ฅํ ์๋๋ฆฌ์ค์๋ ์ด๋ฏธ์ง ์ ์ก ์๋น์ค๋ฅผ ํตํด ์ด๋ฏธ์ง๋ก ์์ฅํ phar ํ์ผ์ ๋ค์ด๋ก๋ํ๊ณ ํด๋น ํ์ผ์ ์น ์ฝํ ์ธ ์บ์์ ๋์ฒดํ๋ ๊ฒ์ด ํฌํจ๋ฉ๋๋ค.
๊ธฐํ ์ทจ์ฝ์ :
- CVE-2022-22242 โ error.php ์คํฌ๋ฆฝํธ ์ถ๋ ฅ์์ โโํํฐ๋ง๋์ง ์์ ์ธ๋ถ ๋งค๊ฐ๋ณ์๋ฅผ ๋์ฒดํฉ๋๋ค. ์ด๋ฅผ ํตํด ๋งํฌ๋ฅผ ๋ฐ๋ผ๊ฐ ๋ ์ฌ์ฉ์ ๋ธ๋ผ์ฐ์ ์์ ํฌ๋ก์ค ์ฌ์ดํธ ์คํฌ๋ฆฝํ ๋ฐ ์์ JavaScript ์ฝ๋ ์คํ์ด ๊ฐ๋ฅํฉ๋๋ค(์: โhttps:// JUNOS_IP/error.php?SERVER_NAME= alert(0) " ๊ณต๊ฒฉ์๊ฐ ๊ด๋ฆฌ์๊ฐ ํน๋ณํ ์ค๊ณ๋ ๋งํฌ๋ฅผ ์ด๋๋ก ์ ๋ํ๋ ๊ฒฝ์ฐ ์ด ์ทจ์ฝ์ ์ ์ฌ์ฉํ์ฌ ๊ด๋ฆฌ์ ์ธ์ ๋งค๊ฐ ๋ณ์๋ฅผ ๊ฐ๋ก์ฑ ์ ์์ต๋๋ค.
- CVE-2022-22243, CVE-2022-22244 jsdm/ajax/wizards/setup/setup.php ๋ฐ /modules/monitor/interfaces/interface.php ์คํฌ๋ฆฝํธ๋ฅผ ํตํ XPATH ํํ์ ๋์ฒด๋ฅผ ํตํด ๊ถํ์ด ์๋ ์ธ์ฆ๋ ์ฌ์ฉ์๊ฐ ๊ด๋ฆฌ ์ธ์ ์ ์กฐ์ํ ์ ์์ต๋๋ค.
- CVE-2022-22245 Upload.php ์คํฌ๋ฆฝํธ์์ ์ฒ๋ฆฌ๋๋ ๊ฒฝ๋ก์ ".." ์ํ์ค๊ฐ โโ์ ๋๋ก ์ญ์ ๋์ง ์์ ์ธ์ฆ๋ ์ฌ์ฉ์๊ฐ PHP ์คํฌ๋ฆฝํธ๋ฅผ ์คํํ ์ ์๋ ๋๋ ํฐ๋ฆฌ์ PHP ํ์ผ์ ์ ๋ก๋ํ ์ ์์ต๋๋ค(์: ๋ค์์ ์ ๋ฌ). ๊ฒฝ๋ก "ํ์ผ ์ด๋ฆ=\. .\..\..\..\www\dir\new\shell.php").
- CVE-2022-22246 - jrest.php ์คํฌ๋ฆฝํธ์ ์ธ์ฆ๋ ์ฌ์ฉ์์ ์ํ ์กฐ์์ ํตํด ์์์ ๋ก์ปฌ PHP ํ์ผ์ด ์คํ๋ ๊ฐ๋ฅ์ฑ์ด ์์ต๋๋ค. ์ฌ๊ธฐ์ ์ธ๋ถ ๋งค๊ฐ๋ณ์๋ "require_once()" ํจ์์ ์ํด ๋ก๋๋ ํ์ผ์ ์ด๋ฆ์ ํ์ฑํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค(์: ์: "/jrest.php?payload =alol/lol/any\..\..\..\..\any\file")
์ถ์ฒ : opennet.ru