Web Security Lab

웹 공격 실험

운영 데이터와 분리된 안전한 실습용 기능으로 요청·응답·로그를 비교합니다.

실험 흐름

정상 요청 → 테스트 입력 → 응답 변화 확인 → Nginx 로그 확인 → 방어 원리 확인

SQLi는 요청마다 생성되는 메모리 DB의 가짜 계정만 사용하고, Traversal은 가상 파일시스템만 사용합니다. XSS는 sandbox가 적용된 격리 문서에서만 실행됩니다.

SQL Injection Lab

문자열 결합 SQL과 파라미터 바인딩의 결과를 같은 더미 DB에서 비교합니다.

XSS Lab

입력값이 HTML로 해석될 때와 이스케이프될 때의 차이를 sandbox에서 비교합니다.

Path Traversal Lab

상대경로가 기준 디렉터리를 벗어나는 원리를 실제 파일 대신 가상 경로로 실습합니다.

Clickjacking Lab

X-Frame-Options와 frame-ancestors가 외부 iframe 삽입을 어떻게 막는지 확인합니다.

Security Header Lab

CSP, HSTS, nosniff, X-Frame-Options가 실제 응답에 포함되는지 브라우저에서 확인합니다.

Command Injection Lab

명령 문자열 결합과 허용목록 검증의 차이를 실제 셸 실행 없이 비교합니다.

CSRF Lab

토큰 없는 상태 변경 요청과 CSRF Token 검증을 비교합니다.

IDOR Lab

객체 ID만 바꿨을 때와 소유권 검증을 적용했을 때를 비교합니다.

File Upload Lab

파일명만 신뢰하는 방식과 확장자·MIME 검증을 비교합니다.

SSRF Lab

사용자 지정 URL 접근과 허용 호스트 검증을 가상 URL로 실습합니다.

Open Redirect Lab

next 파라미터를 그대로 신뢰하는 경우와 내부 경로만 허용하는 방식을 비교합니다.

SSTI Lab

사용자 입력을 템플릿 자체로 렌더링하는 경우와 값으로 전달하는 방식을 비교합니다.

XXE Lab

DOCTYPE/ENTITY가 포함된 XML과 안전한 XML 입력 정책을 비교합니다.

Deserialization Lab

위험한 역직렬화 패턴과 JSON 기반 안전한 데이터 처리를 비교합니다.

Authentication Lab

무제한 로그인 실패와 5회 실패 잠금 정책을 비교합니다.