gyumin.log

웹 취약점 실습 도구 정리

취약점을 개념으로만 알다가 직접 찾아보려니 뭘 깔아야 하는지부터 막혔다. 실습에 필요한 도구를 역할별로 정리한다. 크게 세 종류다. 연습 대상(일부러 취약하게 만든 사이트), 진단 도구, 학습 플랫폼.

실제 사이트를 공격하면 불법이다. 그래서 “공격해도 되는” 취약한 사이트를 내 컴퓨터에 띄워놓고 연습한다.

1. 연습 대상 - 일부러 취약하게 만든 사이트

DVWA (Damn Vulnerable Web Application)

  • 보안 실습용으로 만든 가짜 웹사이트. 로그인·게시판·파일 업로드마다 취약점이 심어져 있다.
  • 장점은 난이도 조절. Low/Medium/High/Impossible 4단계라 Low에서 감을 잡고 Medium에서 필터 우회를 연습한다. 취약점이 메뉴별로 나뉘어 있어 하나씩 공부하기 좋다. 입문용 표준.

OWASP Juice Shop

  • 역시 취약하게 만든 사이트인데 DVWA보다 실제 쇼핑몰에 가깝다. 상품·장바구니·주문·리뷰가 있는 진짜 서비스처럼 생겼다.
  • DVWA가 “취약점 하나씩 연습장”이면 Juice Shop은 “실전 축소판”이다. 특히 접근 통제 누락(IDOR) 연습이 좋다. 남의 장바구니·주문을 조회하는 시나리오가 자연스럽게 나온다.

2. 진단 도구 - 요청을 들여다보고 조작

Burp Suite (Community, 무료)

  • 진단의 핵심 도구. 브라우저와 웹서버 사이에 끼어들어 오가는 요청을 가로채고, 값을 바꿔 다시 보내는 프록시(중계기)다.
  • 왜 필요한가. 브라우저 화면에서는 입력값을 마음대로 못 바꾼다. 로그인 요청의 id=10011002로 바꿔 남의 정보가 열리는지(IDOR) 보려면, 요청이 서버로 가는 중간에 낚아채 숫자를 바꿔야 한다. Burp가 그 일을 한다.
  • 기능 두 개만 알면 시작할 수 있다. Proxy(요청 가로채기)와 Repeater(같은 요청을 값만 바꿔 반복 전송). 내장 브라우저(Proxy 탭의 Open browser)를 쓰면 인증서 설정 없이 바로 된다.

브라우저 개발자도구 (F12)

  • Burp의 축소판 대용. 네트워크 탭에서 요청을 볼 수 있다. 조작 자유도는 낮지만, Burp 설치가 안 되는 환경 대비용으로 익혀둔다.

3. 학습 플랫폼

PortSwigger Web Security Academy (무료)

  • Burp를 만든 회사가 운영하는 무료 학습 사이트. 브라우저에서 바로 되는 실습 랩이 취약점별로 수십 개씩 있다.
  • 각 랩이 “이 취약점으로 이 목표를 달성하라”는 미션 형식이라 개념만 읽는 것보다 빨리 붙는다. 난이도가 Apprentice(입문) → Practitioner → Expert. 설치가 필요 없어 가장 먼저 시작하기 좋다.

4. 네 개가 어떻게 맞물리나

PortSwigger Academy  →  개념 배우고 브라우저에서 바로 실습 (설치 불필요)

DVWA (도커)          →  내 컴퓨터에 띄워 난이도 올려가며 재현
        +
Burp Suite           →  요청을 가로채고 값을 바꿔 실제로 공격

Juice Shop (도커)    →  실전 쇼핑몰 형태에서 종합 연습

한 문장으로: PortSwigger로 배우고, DVWA에 Burp를 물려 재현하고, Juice Shop으로 실전 감을 붙인다.

5. 도커(Docker)는 왜 나오나

DVWA와 Juice Shop을 “도커로 띄운다”고 하는데, 도커는 프로그램을 필요한 환경까지 통째로 담아 한 번에 실행해주는 도구다. DVWA는 웹서버·PHP·데이터베이스를 다 깔아야 도는데, 도커로 하면 아래 한 줄이 그걸 다 대신한다.

docker run -d --name dvwa -p 8080:80 vulnerables/web-dvwa
docker run -d --name juice -p 3000:3000 bkimminich/juice-shop

지우고 싶으면 컨테이너만 삭제하면 내 컴퓨터엔 흔적이 안 남는다. 실습 환경을 깔끔하게 만들고 지우기 좋아 보안 실습의 표준이다.

시작 순서

설치 없이 되는 PortSwigger Academy로 SQL 인젝션 입문 랩 한두 개를 먼저 푼다. 감을 잡은 뒤 도커로 DVWA를 띄운다.

주의: 전부 무료이고, 반드시 이 연습용 대상에서만 한다. 운영 중인 남의 사이트에 같은 시도를 하면 정보통신망법 위반이다.

진단 관점 정리는 웹 취약점 진단 실습 가이드 노트에 이어 둔다.

용어: 프록시는 두 지점 사이에서 통신을 중계하는 것. 컨테이너는 도커가 프로그램을 격리해 실행하는 단위.