Path Traversal : self-test [2]
DATE : 2023/11/5
์ด๋ฒ POST์์๋ Path Traversal [2]์์ ๋ดค๋ ์ฌ๋ก ์ค
path traversal sequence๋ฅผ strip! ํด๋ฒ๋ฆฌ๋ ๊ฒฝ์ฐ๋ฅผ ์ฌํํด๋ณผ๊น ํ๋ค.
์ ์ฒด์ ์ธ ํ์ด์ง ๊ตฌ์ฑ์ Path Traversal self test๊ณผ ๋์ผํ๋ค.
images.php๋ก ์ ์ํด ์ด๋ฒ์๋ 4.jpg ์ด๋ฏธ์ง๋ฅผ ์์ฒญํด๋ดค๋ค.
๊ฒฐ๊ณผ๋ ์์ ๊ฐ์ด ์ ์์ ์ผ๋ก ์ด๋ฏธ์ง๊ฐ ๋ฐ๋๋ ๊ฑธ ๋ณผ ์ ์์๊ณ ์ด๋์ packet์ ๋ณด๋ฉด
<img> tag์ ๊ฐ์ด ./images/4.jpg์ธ ๊ฑธ ๋ณด์ ์ฌ์ฉ์๊ฐ ์์ฒญํ ์ด๋ฏธ์ง๋
ํ์ด์ง์ ๋์ผํ ๊ฒฝ๋ก๊ฐ ์๋ /images directory์์ ๊บผ๋ด์จ๋ค๋ ๊ฑธ ์ ์ ์๋ค.
๋ฐ๋ผ์ ์ฐ๋ฆฌ์ ๋ชฉํ์ธ hanhxx directory - secret.txt๋ฅผ ์ฝ๊ธฐ ์ํด์๋
๊ธฐ๋ณธ์ ์ผ๋ก ์ค์ ๋ /images directory ๊ฒฝ๋ก์์ ํ ๋ฒ ๋น ์ ธ๋์ค๋๋ก ํด์ผ ํ๋ค.
directory๋ฅผ ๋น ์ ธ๋์ค๊ธฐ ์ํด path traversal sequence๋ฅผ ์ฌ์ฉํ๋ฉด..!
ํ์ด์ง ์์๋ alt ๊ฐ์ด ์ถ๋ ฅ ๋๊ณ
(์ฌ์ฉ์๊ฐ ์ ๋ ฅํ ๊ฒฝ๋ก์ ์ผ์นํ๋ ์ด๋ฏธ์ง ํ์ผ์ด ์๊ธฐ ๋๋ฌธ์)
packet์์๋ 404 Not Found ๋ผ๊ณ ํ๋ค. ํ ๐ง
Path Traversal self test์์๋ ์ด๋ ๊ฒ ํด์ ๋ถ๋ช directory ์ด๋์ ์ฑ๊ณตํ๋๋ฐ..
๋ฌธ์ ๊ฐ ์๋ ๋ฏํ๋ค!!
[ images.php ]
self-test [1]๊ณผ ๋น๊ตํด๋ดค์ ๋, PHP code๊ฐ ์ถ๊ฐ๋์๋ค.
์ด๋ฒ์ ๊ตฌํํ ํ๊ฒฝ์ ๊ธฐ๋ณธ์ ์ผ๋ก sequence ../ ๋ฅผ ์ฐจ๋จํ๊ธฐ ์ํด์
"../"๋ฅผ ๋ฐ๊ฒฌํ๋ฉด ๊ณต๋ฐฑ์ผ๋ก ๊ต์ฒดํด๋ฒ๋ฆฌ๋ ๋ด์ฉ์ ์ถ๊ฐํ๋ค.
๊ทธ๋ ๋ค ๋ณด๋ ์์์ ์ ๋ ฅํ ๊ฐ์ด $filename์ผ๋ก ์ ๋ฌ๋๋ฉด
์ด์ ๊ฐ์ ๊ณผ์ ์ผ๋ก sequence๊ฐ ์ ๊ฑฐ ๋๋ ๊ฒ์ด๋ค..!
ํ.์ง.๋ง sequence๋ฅผ ์ ๊ฑฐํจ์ผ๋ก์จ ๋ง๋ค์ด์ง๋ sequence๋ ์ด๋ป๊ฒ ๋ง์ง ๋ชปํ๋ค!!
์ ๊ฐ์ด ๊ฐ์ ์ ๋ ฅํ๊ฒ ๋๋ฉด
ํจ์๋ฅผ ๊ฑฐ์น ๊ฒฐ๊ด๊ฐ์ sequence๊ฐ ํฌํจ ๋๋ฏ๋ก
str_replace ๊ณผ์ ์ ๊ฑฐ์น ๊ฐ์ด filename์ผ๋ก ๋ค์ด๊ฐ๊ฒ ๋๋ฉด
<img> ๊ฒฝ๋ก ๊ฐ์ ์์ ๊ฐ์ด "../"์ด ๋จ์์๊ฒ ๋๋ค.
ํด๋น ๊ฒฝ๋ก์ ์ด๋ฏธ์ง๋ฅผ ๊ฐ์ ธ์ค๊ธฐ ์ํด /images/../hanhxx/secret.txt ๊ฒฝ๋ก์ ํ์ผ์ ์์ฒญํ๊ฒ ๋๋ฉด
response์์ secret.txt ํ์ผ ๋ด์ฉ์ ํ์ธํ ์ ์๊ฒ ๋๋ค!!
์ด๋ ๊ฒ ํด์ ์ฐํ ์ฑ๊ณต! ๐
์ง์ ๊ตฌํํ ์์๋ฅผ ํตํด์
์ผ์ฐจ์ ์ผ๋ก sequence๋ง ์ ๊ฑฐํ๋ ค๊ณ ํ๋ค ๋ณด๋ฉด ์๊ฐ๋ณด๋ค ์ฝ๊ฒ ์ฐํ๋ ์ ์์์ ์๊ฒ ๋์๋ค.
sequence๋ฅผ ์ ๊ฑฐํ๋ ๊ณผ์ ํ์๋ nested sequence์ ๊ฐ์ด
path traversal sequence๊ฐ ์กด์ฌํ๋ ์ง ํ์ธํ๊ฑฐ๋ ์ ์ด์ sequence๊ฐ ๊ฐ์ง๋๋ฉด
๊ทธ ์ดํ์ ์ด๋ ํ script๋ ์คํ๋์ง ์๋๋ก ์ค๋จํด๋ฒ๋ฆฌ๋ ๋ฑ ์ถ๊ฐ์ ์ธ ๋ณด์์ด ํ์ํ ๋ฏํ๋ค. ๐ซ๐ซ
Last updated