๐ ์ถ์ฒ
๋ณธ ์๋ฃ๋ '๊ฐ๋ฐ์๋ฅผ ์ํ ์น ํดํน' ์ฑ ์ ๋ฐํ์ผ๋ก ์์ฑ๋์์ต๋๋ค.
01. ์ค์ต ํ๋ก๊ทธ๋จ ์ค์น
Step 1. Docker Desktop ์ค์น
๐ ์ฐธ๊ณ ์๋ฃ
- Ver. Windows
Windows์ Docker Desktop ์ค์นํ๊ธฐ
์๋์ฐ์ ๋์ปค ๋ฐ์คํฌํ ์ค์น
- Ver. Mac
[Docker] Docker MacOS ํ๊ฒฝ ์ต์ด ์ค์น ๋ฐ ์คํ ๋ฐฉ๋ฒ: Image, Container, Registry
[Docker] Mac OS์ Docker ์ค์น
Step 2. ์ปจํ ์ด๋ ์คํ ๋ฐ ์ค์น
โถ ์ค์ต์ฉ ์ปจํ ์ด๋ ์คํ
Windows PowerShell์ [๊ด๋ฆฌ์๋ก ์คํ] ๋ฒํผ์ ํด๋ฆญํ์ฌ ๊ด๋ฆฌ์ ๊ถํ์ผ๋ก ์คํ์์ผ์ค๋ค.
๊ด๋ฆฌ์ ๊ถํ์ผ๋ก ์คํ๋ PowerShell์์ ๋ค์๊ณผ ๊ฐ์ ๋ช ๋ น์ด๋ฅผ ์ ๋ ฅํด์ค๋ค
โป ์ค์ต ํ๋ก๊ทธ๋จ ๊ตฌ์ถ ๊ณผ์ ์์ ๋ณธ ์ปจํ ์ด๋ ํ๊ฒฝ์์ ์ค์ต์ ์งํํ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ ์ฐฝ์ ๋ซ์ง ๋ง๊ณ ๊ทธ๋๋ก ๋์ด์ผ ํ๋ค
๐จ๏ธ ์ค์ต์ฉ ์ปจํ ์ด๋ ์คํ ๋ช ๋ น์ด
docker run -it --name webgoat -p 8080:8080 -p 9090:9090 ubuntu
[ ์ปจํ ์ด๋ ์คํ ๋ช ๋ น์ด ์ค๋ช ]
- docker run : ์ปจํ ์ด๋ ์คํ ๋ช ๋ น
- -it : ์ปจํ ์ด๋ ์ ๋ ฅ ์ค์ ์ ํ๋ -i ์ต์ ๊ณผ ํฐ๋ฏธ๋๋ก ํ์ฌ ์์ ์ ๊ทผํ๋ -t ์ต์ ์ ํ๋๋ก ํฉ์น ์ต์
- --name : ์์ฑํ ์ปจํ ์ด๋์ ์ด๋ฆ ์ค์ ์ต์
- -p : ํธ์คํธ ํฌํธ๋ฅผ ์ปจํ ์ด๋ ํฌํธ์ ํฌํธํฌ์๋ฉ ์ํค๋ ์ต์
- ubuntu : ์ปจํ ์ด๋ ์คํ์ ์ฌ์ฉํ๋ ์ด๋ฏธ์ง
โ ๏ธ ํฌํธํฌ์๋ฉ์ด๋?
ํฌํธํฌ์๋ฉ(Port forwarding)์ ๊ฐ๋จํ ๋งํด์ ํฌํธ(Port)๋ฅผ ์ ๋ฌ(Forwarding)ํด ์ฃผ๋ ๊ฒ์ด๋ผ๊ณ ์๊ฐํ ์ ์๋ค. ํน์ ํ ํฌํธ๋ก ๋ค์ด์ค๋ ๋ฐ์ดํฐ ํจํท์ ๋ค๋ฅธ ํฌํธ๋ก ๋ฐ๊ฟ์ ๋ค์ ์ ์กํด์ฃผ๋ ์์ ์ด๋ค.
[ ์ฐธ๊ณ ์๋ฃ ]
- 'ํฌํธ ํฌ์๋ฉ' ์ ํ๋ ๊ฑธ๊น? ๐
- ํฌํธํฌ์๋ฉ: ํฌํธํฌ์๋ฉ์ ์ ์์ ์ค์ ๋ฐฉ๋ฒ
02. ์ค์ต ํ๋ก๊ทธ๋จ ๊ตฌ์ถ
Step 1. WebGoat ์ค์น ๋ฐ ํ๊ฒฝ ๊ตฌ์ฑ
๊ตฌ๊ธ์ WebGoat ๊ฒ์ ํ ์ ์ด๋ฏธ์ง์ ๊ฐ์ด ๋์ค๋ ๊นํ๋ธ ๋ ํฌ์งํ ๋ฆฌ์ ์ ์ํ๋ค
๊ทธ๋ผ ์์ ๊ฐ์ด WebGoat์ Github Repository๋ก ๋์ด๊ฐ ์ ์๋ค.
์ค์ต ํ๊ฒฝ์์์ ์ค๋ฅ๋ฅผ ์ต์ํํ๊ธฐ ์ํด ์๋จ main ๋ฒํผ์ ๋๋ฌ Tags๋ฅผ 'v2023.3'์ผ๋ก ๋ณ๊ฒฝํด์ค๋ค
์์ ์ค๋นํ ์ค์ต์ฉ ์ปจํ ์ด๋์ WebGoat ์์ค์ฝ๋๋ฅผ ๋น๋ํ์ฌ ์คํํ๊ธฐ ์ํด WebGoat repository์ clone ์ฃผ์๋ฅผ ๋ณต์ฌํด์ค๋ค.
์ดํ ๋ค์ ์ปจํ ์ด๋๋ก ๋์์ 'apt update' ๋ช ๋ น์ด๋ฅผ ์คํํด์ค๋ค.
WebGoat ์์ค์ฝ๋๋ฅผ Clone ํ๊ธฐ ์ํด ํ์ํ git ํจํค์ง์ ์์ค์ฝ๋ ์์ ์ ์ํด ํ์ํ vim ์๋ํฐ ํจํค์ง๋ฅผ 'apt install git vim' ๋ช ๋ น์ด๋ฅผ ์ ๋ ฅํ์ฌ ์ค์นํด์ค๋ค.
๋ค์์ผ๋ก WebGoat ๋น๋์ ์คํ์ ํ์ํ JDK๋ฅผ ์ค์นํด์ค๋ค. WebGoat๋ JDK17์ ๊ธฐ๋ฐ์ผ๋ก ๊ฐ๋ฐ๋์์ผ๋ฏ๋ก 'apt install -y openjdk-17-jdk' ๋ช ๋ น์ด๋ฅผ ์ ๋ ฅํ์ฌ ์ค์นํ๋ค
์ค์น๊ฐ ์๋ฃ๋์๋ค๋ฉด 'java -version' ๋ช ๋ น์ด๋ฅผ ์ ๋ ฅํ์ฌ openjdk version์ด 17๋ก ์์ํ๋์ง ํ์ธํด๋ณผ ์ ์๋ค.
๋ค์์ผ๋ก ์์ ๊ฐ์ด 3๋จ๊ณ๋ก WebGoat ์์ค์ฝ๋ ๋น๋ ๊ณผ์ ์ ์ํํด์ฃผ์ด์ผ ํ๋ค.
์ฒซ๋ฒ์งธ ๋ถ๋ถ์ WebGoat ์์ค์ฝ๋๋ฅผ root ๊ณ์ ์ ํ ๋๋ ํฐ๋ฆฌ๋ก ์ด๋ ํ ๋ค์ด๋ก๋ ๋ฐ ๋น๋ ๊ณผ์ ์ ์ํํด ์ฃผ๋ ๋ถ๋ถ์ด๋ค.
๋๋ฒ์งธ ๋ถ๋ถ์ ๋ณต์ฌํ WebGoat repository์ clone ์ฃผ์๋ฅผ ์ฌ์ฉํ์ฌ WebGoat ์์ค์ฝ๋๋ฅผ clone ํด์ค ์ ์๋ค.
์ธ๋ฒ์งธ ๋ถ๋ถ์ WebGoat ๋๋ ํฐ๋ฆฌ์ ์ ๊ทผํ ํ, ์์ค์ฝ๋๋ฅผ ์ ๋ฐ์์๋์ง 'git describe' ๋ช ๋ น์ด๋ฅผ ์ ๋ ฅํ์ฌ ํ์ธํ ์ ์๋ค.
WebGoat ์ค์ ํ์ผ ์์ ์ ์ํด 'vi src/main/resources/application-webgoat.properties' ๋ช ๋ น์ด๋ฅผ ์ ๋ ฅํ์ฌ vi ์๋ํฐ๋ฅผ ์คํํด์ค๋ค.
ํด๋น ์ค์ ํ์ผ์์ 'webgoat.host=${WEBGOAT_HOST:127.0.0.1}'๋ก ๋์ด์๋ ๊ฒ์ ๋ณผ ์ ์๋๋ฐ ์ด๋ WebGoat๋ฅผ 127.0.0.1์์๋ง ์ ๊ทผ ๊ฐ๋ฅํ๋๋ก ๋ง๋๋ ์ค์ ์ผ๋ก, ์ด๋ฒ ์ค์ต ํ๊ฒฝ์์๋ ํธ์คํธ PC ๋ธ๋ผ์ฐ์ ๋ฅผ ํตํด ์ ๊ทผํ๋ฏ๋ก ํด๋น ๋ถ๋ถ์ ์ฃผ์ ์ฒ๋ฆฌํ๊ณ ๊ทธ ์๋์ 'webgoat.host=0.0.0.0'์ ์ถ๊ฐํ์ฌ ํธ์คํธ pc์์ ์ ๊ทผ์ด ๊ฐ๋ฅํ๋๋ก ์์ ํ๊ณ ์ ์ฅํด์ค๋ค.
๐ vi ํธ์ง๊ธฐ ์ฌ์ฉ๋ฒ
- ๋ด์ฉ์ ์ ๋ ฅํ ๋๋ ํค๋ณด๋ 'i'๋ฅผ ๋๋ฌ ์ ๋ ฅํ ์ ์๋ค
- ์์ฑ ์๋ฃ ํ ์ ์ฅ ๋ฐ ์ข ๋ฃ๋ฅผ ํ๊ณ ์ ํ ๋๋ 'ESC' ํค๋ฅผ ๋๋ฅด๊ณ ':wq' ์ ๋ ฅ ํ ์ํฐ ๋ฒํผ์ ๋๋ฅด๋ฉด ์ ์ฅ ํ ๋ค์ ์์ฑํ๋ ์๋ก ์ด๋ํ ์ ์๋ค.
๊ฐ์ ๊ฒฝ๋ก์ ์๋ Webwolf ์ค์ ํ์ผ๋ 'vi src/main/resources/application-webwolf.properties' ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํ์ฌ ์์ ํด์ค๋ค.
์ค์ ํ์ผ์ ์์ ์ด ์๋ฃ๋์๋ค๋ฉด WebGoat๋ฅผ ๋น๋ํด์ฃผ์ด์ผ ํ๋ค. './mvnw clean install' ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํ์ฌ ๋น๋ ํด์ค ์ ์๋ค.
๋น๋ ํ, 'BUILD SUCCESS'๊ฐ ํ์๋๋ฉด ๋น๋๊ฐ ์ฑ๊ณต์ ์ผ๋ก ์ข ๋ฃ๋ ๊ฒ์ด๋ค.
๋ค์์ผ๋ก './mvnw spring-boot:run' ๋ช ๋ น์ด๋ฅผ ์ ๋ ฅํ์ฌ ๋น๋๋ WebGoat๋ฅผ ์คํ์์ผ์ค๋ค
์ ์ด๋ฏธ์ง์ ๊ฐ์ ๋ฌธ๊ตฌ๊ฐ ๋ณด์ด๋ฉด ์ ์์ ์ผ๋ก ์คํ๋ ๊ฒ์ด๋ค.
์ด์ ๋ธ๋ผ์ฐ์ ๋ฅผ ํตํด ์ ๊ทผํด๋ณด์. ๋ธ๋ผ์ฐ์ ์คํ ํ ์ฃผ์์ฐฝ์ 'http://localhost:8080/WebGoat'๋ฅผ ์ ๋ ฅํ๋ฉด WebGoat ๋ก๊ทธ์ธ ํ๋ฉด์ผ๋ก ๋ฆฌ๋ค์ด๋ ํธ ๋๋ ๊ฒ์ ํ์ธํ ์ ์๋ค.
WebGoat์ ๋์ผํ๊ฒ ๋ธ๋ผ์ฐ์ ์ฃผ์์ฐฝ์ 'localhost:9090'์ ์ ๋ ฅํ๋ฉด WebWolf์ ํํ๋ฉด์ ํ์ธํ ์ ์๋ค.
์ด๋ ๊ฒ ๋๋ฉด ์ค์ต ํ๊ฒฝ ๊ตฌ์ถ์ ๋!!
Step 2. WebGoat ๊ณ์ ์์ฑ ๋ฐ ์ ์
WebGoat ์ ์ ํ ํ์๊ฐ์ ์ ์ํด Sign in ํ๋จ์ ์๋ ๋ฒํผ์ ํด๋ฆญํ๋ค.
์ฌ์ฉํ๊ณ ์ ํ๋ Username๊ณผ ๋น๋ฐ๋ฒํธ๋ฅผ ์ ๋ ฅํ๊ณ 'Sign up' ๋ฒํผ์ ํด๋ฆญํ๋ฉด ๋๋ค.
ํ์๊ฐ์ ์ด ์๋ฃ๋๋ฉด ๋ค์ ํ๋ฉด์ผ๋ก ๋์ด๊ฐ๋ ๊ฒ์ ๋ณผ ์ ์๋ค.
'Security > Web hacking' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Dreamhack] web-ssrf write-up (0) | 2024.09.25 |
---|---|
[WebGoat] ์ค์ต ํ๊ฒฝ ์ข ๋ฃ ํ ์ปจํ ์ด๋ ์ฌ์คํ (0) | 2024.09.25 |
[์นํดํน ๊ธฐ์ด] Webpack (0) | 2023.09.23 |
[๋ ผ๋ฌธ ๋ถ์] ํจ์ค์๋ ๋งค๋์ ์ ํด๋ผ์ด์ธํธ-์๋ฒ ํต์ ์ทจ์ฝ์ ๋ถ์ (0) | 2023.02.01 |
[๋ ผ๋ฌธ ๋ถ์] ํจ์ค์๋ ๋งค๋์ ์ ๋ณด์์ฑ ๋ถ์ (0) | 2023.01.23 |