OptinMonster WordPress ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ํ†ตํ•ด JavaScript ์ฝ”๋“œ ๋Œ€์ฒด๋ฅผ ํ—ˆ์šฉํ•˜๋Š” ์ทจ์•ฝ์ 

๋ฐฑ๋งŒ ๊ฐœ ์ด์ƒ์˜ ํ™œ์„ฑ ์„ค์น˜๊ฐ€ ์žˆ๊ณ  ํŒ์—… ์•Œ๋ฆผ ๋ฐ ์ œ์•ˆ์„ ํ‘œ์‹œํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” OptinMonster WordPress ์ถ”๊ฐ€ ๊ธฐ๋Šฅ์—์„œ ์ทจ์•ฝ์ (CVE-2021-39341)์ด ํ™•์ธ๋˜์–ด JavaScript ์ฝ”๋“œ๋ฅผ ์‚ฌ์ดํŠธ์— ๋ฐฐ์น˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ง€์ •๋œ ์ถ”๊ฐ€ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ด ์ทจ์•ฝ์ ์€ ๋ฆด๋ฆฌ์Šค 2.6.5์—์„œ ์ˆ˜์ •๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์—…๋ฐ์ดํŠธ ์„ค์น˜ ํ›„ ์บก์ฒ˜๋œ ํ‚ค๋ฅผ ํ†ตํ•œ ์•ก์„ธ์Šค๋ฅผ ์ฐจ๋‹จํ•˜๊ธฐ ์œ„ํ•ด OptinMonster ๊ฐœ๋ฐœ์ž๋Š” ์ด์ „์— ์ƒ์„ฑ๋œ ๋ชจ๋“  API ์•ก์„ธ์Šค ํ‚ค๋ฅผ ์ทจ์†Œํ•˜๊ณ  WordPress ์‚ฌ์ดํŠธ ํ‚ค ์‚ฌ์šฉ์— ๋Œ€ํ•œ ์ œํ•œ ์‚ฌํ•ญ์„ ์ถ”๊ฐ€ํ•˜์—ฌ OptinMonster ์บ ํŽ˜์ธ์„ ์ˆ˜์ •ํ–ˆ์Šต๋‹ˆ๋‹ค.

์ด ๋ฌธ์ œ๋Š” ์ธ์ฆ ์—†์ด ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ๋Š” REST-API /wp-json/omapp/v1/support๋กœ ์ธํ•ด ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. Referer ํ—ค๋”์— "https://wp" ๋ฌธ์ž์—ด์ด ํฌํ•จ๋˜์–ด ์žˆ๋Š”์ง€ ์ถ”๊ฐ€ ํ™•์ธ ์—†์ด ์š”์ฒญ์ด ์‹คํ–‰๋˜์—ˆ์Šต๋‹ˆ๋‹ค. .app.optinmonster.testโ€ ๋ฐ HTTP ์š”์ฒญ ์œ ํ˜•์„ "OPTIONS"๋กœ ์„ค์ •ํ•˜๋Š” ๊ฒฝ์šฐ(HTTP ํ—ค๋” "X-HTTP-Method-Override"๋กœ ์žฌ์ •์˜๋จ) ๋ฌธ์ œ์˜ REST-API์— ์ ‘์†ํ–ˆ์„ ๋•Œ ๋ฐ˜ํ™˜๋œ ๋ฐ์ดํ„ฐ ์ค‘์—๋Š” ์–ด๋–ค REST-API ํ•ธ๋“ค๋Ÿฌ์—๋„ ์š”์ฒญ์„ ๋ณด๋‚ผ ์ˆ˜ ์žˆ๋Š” ์•ก์„ธ์Šค ํ‚ค๊ฐ€ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

ํš๋“ํ•œ ํ‚ค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ณต๊ฒฉ์ž๋Š” JavaScript ์ฝ”๋“œ ์‹คํ–‰ ๊ตฌ์„ฑ์„ ํฌํ•จํ•˜์—ฌ OptinMonster๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ‘œ์‹œ๋˜๋Š” ๋ชจ๋“  ํŒ์—… ๋ธ”๋ก์„ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์‚ฌ์ดํŠธ์˜ ์ปจํ…์ŠคํŠธ์—์„œ JavaScript ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•  ๊ธฐํšŒ๋ฅผ ์–ป์€ ๊ณต๊ฒฉ์ž๋Š” ์‚ฌ์ดํŠธ ๊ด€๋ฆฌ์ž๊ฐ€ ๋Œ€์ฒด JavaScript ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•  ๋•Œ ์‚ฌ์šฉ์ž๋ฅผ ์ž์‹ ์˜ ์‚ฌ์ดํŠธ๋กœ ๋ฆฌ๋””๋ ‰์…˜ํ•˜๊ฑฐ๋‚˜ ์›น ์ธํ„ฐํŽ˜์ด์Šค์—์„œ ๊ถŒํ•œ ์žˆ๋Š” ๊ณ„์ •์˜ ๋Œ€์ฒด๋ฅผ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์›น ์ธํ„ฐํŽ˜์ด์Šค์— ์•ก์„ธ์Šคํ•˜๋ฉด ๊ณต๊ฒฉ์ž๋Š” ์„œ๋ฒ„์—์„œ ์ž์‹ ์˜ PHP ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : opennet.ru

์ฝ”๋ฉ˜ํŠธ๋ฅผ ์ถ”๊ฐ€