Seekers 실습 매뉴얼 시작하기 시큐어코딩 CTF LLM CTF DevSecOps ELK 전체 코스
시큐어코딩 CTF · Node.js · Python · Java

시큐어코딩 CTF 사용법

취약한 코드를 직접 고쳐 제출하면 자동 채점되는 실습입니다. 세 코스(Node.js·Python·Java)의 화면과 사용법은 동일하며, 언어와 예제만 다릅니다. 먼저 시작하기(로그인)를 마쳤다고 가정합니다.

한 문장 요약: 챌린지 열기 → 취약 코드 이해 → 코드 수정 → 코드 검사로 확인 → 제출 → 통과!

1. 포털 — 챌린지 고르기

로그인하면 챌린지 목록이 카드로 보입니다. 상단에는 강의 슬라이드, 아래에는 챌린지 카드가 있습니다.

카드 표시의미
제목 + 완료 배지챌린지 이름. 해결하면 완료 배지가 붙습니다.
OWASP 태그해당 취약점의 OWASP Top 10 분류(예: A03 Injection).
카테고리 태그주제(injection·xss·auth·crypto·config·review 등).
난이도 ★1~5 별. 별이 많을수록 어렵습니다.
점수(pts)해결 시 얻는 점수. 스코어보드에 반영됩니다.

상단 해결 X / Y 로 전체 진행률을 볼 수 있습니다. 카드를 클릭하면 챌린지 화면이 열립니다.

CTF 포털
▲ CTF 포털 — 강의 슬라이드 + 챌린지 카드(제목·OWASP·카테고리·난이도·점수)

2. 챌린지 화면 구성(3영역)

영역내용
왼쪽 — 파일 | 가이드 파일 탭: 프로젝트 파일 트리(읽기/편집 배지). 가이드 탭: 취약점 설명·수정 방법.
가운데 — 편집기코드 편집기(문법 강조). 편집 가능한 파일을 여기서 고칩니다.
오른쪽 — cURL | 스캐너 터미널 cURL 탭: 요청/응답 미리보기(취약·차단 결과). 스캐너 터미널 탭: 도구 직접 실행.
상단 바에는 챌린지 제목·OWASP·점수·완료/미해결 배지, 그리고 관련 강의 슬라이드 ↗ 링크가 있습니다.
챌린지 화면
▲ 챌린지 화면 — (좌)파일/가이드 · (중)코드 편집기 · (우)cURL 미리보기 / 스캐너 터미널

3. 코드 수정하고 제출하기

  1. 왼쪽 가이드 로 취약점과 안전한 수정 기법을 먼저 읽습니다.
  2. 가운데 편집기에서 편집 가능한 파일의 코드를 고칩니다(예: 문자열 연결 → 파라미터 바인딩).
  3. 코드 검사 를 눌러 채점 전에 확인합니다 — 통과/미통과와 구체적 피드백이 나옵니다.
  4. 통과가 확인되면 제출완료 처리되고 점수가 올라갑니다.
버튼/요소기능
코드 검사현재 코드가 안전한 수정 기법을 적용했는지 검사(제출 전 연습).
제출정답이면 해결로 기록. 채점은 실제 실행이 아니라 안전 기법 적용 여부를 봅니다.
원본 복원편집기를 처음 취약 코드로 되돌립니다(막히면 초기화).
힌트 ▶펼치면 단계별 힌트가 나옵니다(막힐 때만 사용 권장).
채점은 패턴 기반입니다 — 정답 기법(예: execFile, path.basename, bcrypt)을 쓰면 통과합니다. 문법을 바꾸는 방법은 여러 가지일 수 있고, 피드백이 방향을 알려줍니다.

4. 미리보기 — cURL / result web

오른쪽 cURL 탭은 이 코드에 공격 요청을 보냈을 때의 결과를 보여줍니다. 코드를 고치기 전/후로 응답이 어떻게 바뀌는지(유출 → 차단) 눈으로 확인하세요.

5. 스캐너 터미널

스캐너 터미널 탭은 브라우저 안의 진짜 터미널입니다. 정적 분석 도구를 직접 돌려볼 수 있습니다.

# 예시 (Node.js CTF)
eslint app
# 예시 (Python CTF)
bandit -r app
semgrep --config p/owasp-top-ten app
일부 챌린지(프레임워크 보안 설정·종합 리뷰)에는 터미널 탭이 없습니다 — 코드/설정 수정만으로 충분하기 때문입니다.

6. 종합 방어 리뷰 — 4지선다 퀴즈

종합 방어 리뷰 챌린지는 코드 대신 20문항 4지선다 퀴즈입니다. 배운 방어 기법을 점검합니다.

  1. 각 문항에서 가장 적절한 것 하나를 고릅니다.
  2. 모든 문항에 답한 뒤 제출.
  3. 80% 이상(20문항 중 16개) 맞히면 통과합니다. 미달이면 몇 개 맞았는지 알려주고 다시 제출할 수 있습니다.

7. 관련 강의 슬라이드

챌린지 상단의 관련 강의 슬라이드 ↗ 를 누르면 그 주제의 강의 자료(PDF)가 새 탭으로 열립니다. 포털의 강의 슬라이드 영역에서는 세션 전체를 보기/다운로드 할 수 있습니다.

8. 스코어보드

상단 스코어보드 에서 참가자별 해결 수·점수 순위를 확인합니다. 해결한 챌린지의 점수가 합산됩니다.

9. 코스별 차이(Node.js · Python · Java)

코스주소특징
Node.js/nodejs/Express 예제. eslint 스캐너. 프로토타입 오염 등 JS 고유 주제.
Python/python/Flask 예제. bandit·semgrep 스캐너. SSTI·pickle 역직렬화 등.
Java/java/Spring 예제. XXE·역직렬화 등 Java 고유 주제.
화면 사용법(편집기·검사·제출·미리보기·터미널·퀴즈)은 세 코스가 동일합니다. 언어와 예제 코드만 다릅니다.
← 시작하기
© Seekers Security Lab · seekerslab.com