Security Wave Week 1 Lab

학생 실습용 랩 서버

이 서버는 Week 1 Day 1 Nmap 서비스 식별과 Day 2 Nuclei template 작성 실습을 위한 교육용 타깃입니다. 실제 명령 실행, 파일 읽기, credential 접근은 구현되어 있지 않으며 harmless proof marker만 반환합니다.

Target

https://lab.security-wave.n-e.kr 명령에서 도메인만 필요할 때는 lab.security-wave.n-e.kr를 사용합니다.
LAB_BASE_URL="https://lab.security-wave.n-e.kr"
LAB_HOST="lab.security-wave.n-e.kr"
curl -I "$LAB_BASE_URL/"
curl -s "$LAB_BASE_URL/api/lab/fingerprint"

실습 범위

  • 허용: 이 도메인에 대한 HTTP header 확인, 지정 포트 확인, 제공 template 실행
  • 금지: 외부 임의 대상, 대역 스캔, 실제 공격 payload, credential 접근, shell payload
  • 강사가 중단을 지시하면 실행 중인 명령을 즉시 멈춥니다.
Day 1

Nmap 서비스 식별

  1. Kali Terminal에서 Nmap과 curl을 확인합니다.
  2. 허가된 도메인과 포트만 대상으로 지정합니다.
  3. 일반 포트, fake banner, HTTP header, 숨겨진 범위 결과를 따로 기록합니다.
  4. 배너와 단서는 취약점 확정이 아니라 Day 2 분석 후보로 정리합니다.
sudo apt update
sudo apt install -y nmap curl dnsutils netcat-openbsd
TARGET="lab.security-wave.n-e.kr"
VISIBLE_PORTS="80,443,2121,2201,8088,9091,13306"
nmap -Pn -p "$VISIBLE_PORTS" --reason --max-rate 20 "$TARGET"
nmap -sV --version-light -p "$VISIBLE_PORTS" "$TARGET"
nmap -Pn -p 10000-10100 --open --reason --max-rate 20 "$TARGET"
curl -I "https://lab.security-wave.n-e.kr/"
curl -i "http://$TARGET:10080/"
curl -i "http://$TARGET:10081/"
Day 2

Nuclei template 작성

  1. Nuclei 실행 여부를 확인하고 template validation을 먼저 수행합니다.
  2. 제공 fingerprint template을 실행해 정상 proof를 확인합니다.
  3. 학생 template은 status, header, body matcher를 and 조건으로 묶습니다.
  4. RSC awareness template은 harmless proof 요청만 사용합니다.
LAB_BASE_URL="https://lab.security-wave.n-e.kr"
nuclei -validate -t nextjs-lab-fingerprint.yaml
nuclei -u "$LAB_BASE_URL" -t nextjs-lab-fingerprint.yaml
nuclei -u "$LAB_BASE_URL" -t react-rsc-rce-awareness-lab.yaml

Proof endpoint

EndpointMethod과제에서 확인할 내용정상 proof
/api/lab/nmap-targetsGETDay 1 허용 포트와 숨겨진 범위hiddenRange: 10000-10100
/robots.txtGETHTTP 기반 harmless cluecheck /api/lab/fingerprint
/api/lab/fingerprintGET서비스 지문과 simulated versionframework: Next.js
/adminGET보호된 route baseline401
/_next/data/lab/admin.rsc?__nextDataReq=1&lab_bypass=segment-prefetchGETheader 기반 proof matcher 연습LAB_PROOF_NEXTJS_MIDDLEWARE_BYPASS_ONLY
/__rsc_actionPOSTRSC 계열 권고문 이해와 harmless marker 확인LAB_PROOF_REACT_RSC_RCE_AWARENESS_ONLY

학생 정리 항목

  • Day 1: 포트, 상태, service 후보, header, 추가 확인 질문
  • Day 2: CVE 출처, 영향 조건, 직접 작성한 YAML, matcher 근거, 오탐 방지 조건
  • 결과 문장은 “확인된 사실”과 “추정”을 구분해서 작성합니다.

Troubleshooting

  • 브라우저는 열리지만 Nuclei가 실패하면 먼저 curl -I "$LAB_BASE_URL/"로 HTTP 응답을 확인합니다.
  • YAML 오류는 nuclei -validate로 줄 번호를 먼저 확인합니다.
  • matcher가 동작하지 않으면 status, header, body 중 어느 조건이 빠졌는지 나눠서 확인합니다.