๋ถ์ ์ผ๊ธฐ - file upload ์ทจ์ฝ์
๐ช Intro
์ทจ์ฝ์ ๋ฐ CVE ํ๋์ ์ํด ๋ถ์ํ๊ณ ์๋ ํ๋ก์ ํธ๊ฐ ์์ต๋๋ค.
file upload๋ฅผ ํตํ webshell ํ๋ ๊ณผ์ ์ ์ ๋ฆฌํ๊ณ ์ ํฉ๋๋ค.
๐ก Analysis
๋ถ์ํ๋ ค๋ ์น ์ฌ์ดํธ์๋ ์ ๋ก๋ ๊ธฐ๋ฅ์ด ์กด์ฌ ํฉ๋๋ค. ๋ค๋ง ico, webp, svg ํ์ฅ์๋ง ์ ๋ก๋ ํ ์ ์์ต๋๋ค.
๊ทธ๋ฐ๋ฐ ์๋ ์ฝ๋๋ฅผ ๋ณด๋ฉด์ ์๋ฌธ์ ์ด ์๊ธฐ๋๋ผ๊ตฌ์.
๋ณดํต ํ์ผ ์ ๋ก๋ ๊ด๋ จ ๊ธฐ๋ฅ์ ๋ง๋ค ๋, ํ์ฅ์ ๊ฒ์ฆ์ .(dot) ์ ๊ธฐ์ค์ผ๋ก ๋ฌธ์์ด์ ๋๋์ด ๋งจ ๋ง์ง๋ง ๊ฐ์ ํ์ฅ์๋ก ํ๋จ ํฉ๋๋ค. ์ด๋ ๊ฒ ์ถ์ถ๋ ํ์ฅ์๋ก ์ ๋ก๋ ํ ํ์ผ์ ํํฐ๋ง ํ๊ฒ ๋์ฃ .
ํ์ง๋ง, ์ ์ฝ๋๋ `strpos()` ํจ์๋ฅผ ์ฌ์ฉํ์ฌ ์ ๋ก๋ ํ์ผ์ ํ์ฅ์๋ฅผ ๊ฒ์ฌํ๊ณ ์์ต๋๋ค.
์ด ํจ์๋ ๋ฌธ์์ด์ ์์น๋ฅผ int ๋ก ๋ฆฌํดํฉ๋๋ค. ์๋ฅผ ๋ค๋ฉด, ์๋์ ๊ฐ์ต๋๋ค.
๋ค์ ๋์์์ ๋ฌธ์ ์ ์ฝ๋๋ฅผ ๋ณด๋ฉด, if๋ฌธ์ผ๋ก `strpos()` ํจ์์ ๋ฆฌํด ๊ฐ์ด `false` ๊ฐ ์๋๋ผ๋ฉด ์ ๋ก๋ ํ ์ ์์ต๋๋ค.
์ฆ, `$filename` ๋ณ์์ `simple.svg` ๊ฐ ์๋๋ผ `simple.svg.php` ๋ผ๊ณ ์ ๋ก๋ ํ๋ฉด, if ๋ฌธ์ bypass ํ ์ ์๊ฒ ๋ค์.
์ต์ข ์ ์ผ๋ก ์๋ ์ฌ์ง์ฒ๋ผ webshell ์ ์ ๋ก๋ ํ์ฌ, ์์คํ ๋ช ๋ น์ด๋ฅผ ์คํํ ์ ์๊ฒ ๋์์ต๋๋ค.
'Security' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋ถ์ ์ผ๊ธฐ - file upload ์ทจ์ฝ์ (0) | 2022.05.12 |
---|---|
Foobar CTF 2022 writeup (0) | 2022.03.06 |
nodejs express routing case sensitive options (0) | 2022.03.06 |
java URL class๋ฅผ ์ด์ฉํ ๋ด๋ถ ํ์ผ ์ฝ๊ธฐ (0) | 2022.03.02 |
Log4j ์ทจ์ฝ์ (CVE-2021-44228) Log4Shell ๋ฐ์ ์์ธ ๋ฐ ์ค์ต (0) | 2021.12.24 |
ECB ์ค๋ช ๋ฐ ์ทจ์ฝ์ (0) | 2019.09.17 |
๋๊ธ
์ด ๊ธ ๊ณต์ ํ๊ธฐ
-
๊ตฌ๋
ํ๊ธฐ
๊ตฌ๋ ํ๊ธฐ
-
์นด์นด์คํก
์นด์นด์คํก
-
๋ผ์ธ
๋ผ์ธ
-
ํธ์ํฐ
ํธ์ํฐ
-
Facebook
Facebook
-
์นด์นด์ค์คํ ๋ฆฌ
์นด์นด์ค์คํ ๋ฆฌ
-
๋ฐด๋
๋ฐด๋
-
๋ค์ด๋ฒ ๋ธ๋ก๊ทธ
๋ค์ด๋ฒ ๋ธ๋ก๊ทธ
-
Pocket
Pocket
-
Evernote
Evernote
๋ค๋ฅธ ๊ธ
-
Foobar CTF 2022 writeup
Foobar CTF 2022 writeup
2022.03.06 -
nodejs express routing case sensitive options
nodejs express routing case sensitive options
2022.03.06 -
java URL class๋ฅผ ์ด์ฉํ ๋ด๋ถ ํ์ผ ์ฝ๊ธฐ
java URL class๋ฅผ ์ด์ฉํ ๋ด๋ถ ํ์ผ ์ฝ๊ธฐ
2022.03.02 -
Log4j ์ทจ์ฝ์ (CVE-2021-44228) Log4Shell ๋ฐ์ ์์ธ ๋ฐ ์ค์ต
Log4j ์ทจ์ฝ์ (CVE-2021-44228) Log4Shell ๋ฐ์ ์์ธ ๋ฐ ์ค์ต
2021.12.24