← 전체 학습 경로
CASE 10 · 중급

서버의 눈으로 내부 주소 보기

캠페인 운영자 권한으로 Lumen Campaign Preview를 블랙박스 점검하세요. 브라우저 개발자 도구나 로컬 프록시에서 카드 등록 요청과 서버의 가져오기 결과를 관찰할 수 있습니다. 정상 카드에서 확인 가능한 단서만 사용해 의뢰가 지정한 내부 canary 응답이 미리보기 화면에 반환되는지 확인하세요.

CLIENT루멘 이미지 프록시
TARGET SERVICELumen Campaign Preview
TARGET ADDRESShttps://wargame.hanplanet.com/lumen/cards
ESTIMATED TIME45 MIN
CLIENT DOSSIER

의뢰 배경

루멘 스튜디오는 마케팅 카드 URL을 등록하면 서버가 이미지를 가져와 보여 주는 Campaign Preview를 운영합니다. 한 캠페인 미리보기 결과에 외부에서 공개하지 않은 인프라 상태 문구가 표시됐고, 같은 시각 미리보기 worker가 내부 자산에 접근한 기록이 남았습니다. 외부 캠페인 업로드를 중단한 상태에서 사용자가 입력한 URL을 통해 내부 정보가 반환될 수 있는지 6시간 안에 확인해야 합니다.

MISSION OBJECTIVE

이번 목표

외부 사용자가 등록한 카드 URL을 통해 지정된 내부 canary 응답을 미리보기 화면에서 확인할 수 있음을 재현하세요.

  • SSRF에서 요청 주체가 사용자 브라우저가 아니라 취약한 서버임을 설명한다.
  • 내부 서비스와 metadata endpoint가 외부에서 보이지 않아도 보호가 필요한 이유를 이해한다.
  • scheme·host allowlist, DNS 재검증, redirect 제한, egress 통제를 방어로 연결한다.
TECHNICAL BRIEFING

학습 노트 · 서버가 사용자가 고른 URL을 대신 요청하면 사용자는 서버의 네트워크 위치와 권한을 빌릴 수 있습니다.

이미지 프록시, 웹훅 검사, 링크 미리보기처럼 서버가 URL을 가져오는 기능은 흔합니다. URL 전체를 사용자가 결정하면 서버 자신이나 내부 호스트로 요청을 보낼 수 있습니다.

문자열 prefix만 검사하면 사용자 정보 구간, 대소문자, IP 표현, DNS 변경, redirect 같은 URL 해석 차이로 우회될 수 있습니다. 파싱한 scheme과 hostname을 정책에 맞게 검증하고 최종 연결 주소도 확인해야 합니다.

승인된 점검에서는 의뢰서에 명시된 공개 자산과 읽기 전용 canary만 요청해야 합니다. 임의 내부 주소를 추측하거나 포트를 훑는 행동은 같은 기술 검증이라도 승인 범위를 벗어납니다.

요청 위치접근 가능한 대상위험
사용자 브라우저공개 웹과 브라우저가 허용한 네트워크직접 요청의 출처가 사용자에게 보임
미리보기 서버공개 웹 + 내부 서비스서버 권한으로 의도하지 않은 요청 가능
metadata 서비스내부에서만 접근하도록 설계자격 증명과 설정 유출 가능
점검용 canary의뢰서에 지정된 읽기 전용 응답영향을 제한하면서 서버 측 접근 여부 확인
POST /lumen/cards HTTP/1.1
Host: preview.lumen-studio.training
Content-Type: application/x-www-form-urlencoded

url=https%3A%2F%2Fcdn.example%2Fcampaign-card.png

응답에서 요청 주체와 최종 연결 대상을 구분해 기록하세요.
FIELD REFERENCES

더 깊이 읽기

실습 전후에 공식 문서와 보안 아카데미 자료로 개념을 교차 확인하세요.

PROGRESSIVE HINTS

막혔을 때만 열기

다음 단서가 필요할 때만 한 단계씩 확인하세요.

힌트 1 · 누가 요청하는가

결과 로그의 requester 항목을 보세요. 입력한 URL은 브라우저가 아니라 preview-worker가 가져옵니다.

힌트 2 · 내부 자산 단서

정상 카드의 가져오기 영수증과 자산 참조에서 미리보기 서버만 접근하는 canary 주소를 찾으세요.

힌트 3 · 지정된 canary 확인

확인한 읽기 전용 canary URL을 카드 주소로 제출하고, 브라우저가 아닌 미리보기 서버의 응답이 반환되는지 확인하세요.

선행 의뢰가 잠겨 있습니다

이전 단계를 완료하면 자동으로 의뢰 메일과 실습 환경이 열립니다.

로그인 후 실습