Step 329. 세계 최고 수준의 신기법 분석 — Write-up이 곧 교과서다

Step 329. 세계 최고 수준의 신기법 분석 — Write-up이 곧 교과서다

Level 4 — 전문가 | 난이도 ★★★★☆ | 예상 소요 시간 2일 (신기법 노트 작성 + 핵심 기법 재현 2건)

전제: Step 328의 국제 대회 출전과 미해결 문제 저장, Step 320~322의 패치 diff·CVE 분석 경험. "원리까지 파고드는 독법"이 몸에 배어 있어야 합니다.

  • 준비물: 지난 대회에서 저장해 둔 미해결 문제 목록(Step 328의 산출물), 노트 앱 또는 마크다운 편집기, 내 익스플로잇 라이브러리·플레이북 저장소. 외부 사이트(CTFtime, 팀 블로그)의 화면은 전부 화면 예시로 처리하고, 재현은 내 랩에 받아 둔 문제 파일로만 진행합니다.
  • 주의: Write-up의 기법을 재현할 때는 반드시 공개된 문제 파일을 내 랩에서 돌립니다. 기법을 실제 서비스에 시험하는 것은 이 챕터의 범위가 아닙니다.
  • ⚠️ 이 챕터의 실습은 내 랩·합법 플랫폼 전용입니다. 허가 없는 시스템에 적용하면 범죄입니다.

국제 대회가 끝나면 며칠 안에 상위 팀들의 Write-up이 올라옵니다. 이 글들은 단순한 풀이 모음이 아닙니다 — 그해의 최신 공격 기법 목록입니다. 새로운 웹 프레임워크 우회, 최신 암호 공격, 아무도 이름을 붙이지 않은 창의적 체인. 논문으로 정리되고 뉴스에 보도되기 반 년 전의 지식이 여기 있습니다.

이를 분석하고 재현해 라이브러리에 추가하는 것이 세계 수준을 따라잡는 유일한 방법입니다. 오늘은 그 사이클 전체를 배웁니다 — 수집, 추리기, 원리 파고들기, 재현, 그리고 내 것으로 만드는 정리까지.


1. 학습 목표

이 챕터를 끝내면 다음을 할 수 있습니다:

  • 대회가 끝난 뒤 상위 팀 Write-up을 체계적으로 수집하는 절차를 설명한다
  • "신기법 노트"(기법 이름·원리 요약·출제 맥락·참고 링크)를 작성한다
  • Write-up의 생략된 부분을 "왜 이게 되는가"의 자기 증명으로 채운다
  • 공개된 문제 파일을 내 랩에서 재현해 기법을 체화한다
  • 재현한 기법을 익스플로잇 라이브러리와 트렌드 정리 문서에 추가한다

2. 배경 지식 — 오늘의 도구와 개념

오늘의 도구 한눈에 보기

구분 내용
언어·환경 마크다운(신기법 노트), 내 익스플로잇 라이브러리(파이썬), 랩 환경(재현용)
오늘의 명령 명령어가 아니라 절차가 도구입니다 — 수집 → 추리기 → 원리 → 재현 → 정리의 5단계
필요한 개념 Write-up, 신기법 노트 양식, 생략 채우기(자기 증명), 재현, 플레이북 등록
오늘의 산출물 신기법 노트 5건 이상 + 핵심 기법 재현 2건 + 트렌드 정리 문서 1부

2-1. 왜 Write-up이 교과서인가 — 지식의 반감기와 선점

보안 지식의 유통 경로를 생각해 봅시다. 새 기법은 보통 ① 대회 문제나 실제 침해 사고에서 처음 등장하고 → ② 풀이자의 Write-up으로 공개되고 → ③ 블로그와 컨퍼런스 발표로 정제되고 → ④ 논문과 교과서에 실립니다. ①에서 ④까지 걸리는 시간은 짧게는 반 년, 길게는 몇 년입니다.

Write-up을 읽는 사람은 ② 시점에 그 지식을 얻습니다. 교과서를 기다리는 사람보다 반 년 빠릅니다. 국제 대회의 상위 팀 Write-up은 특히 가치가 높습니다 — 세계 최고 수준의 풀이자들이 "이 문제를 풀려면 이 새 기법이 필요했다"는 사실 자체가, 그 기법이 올해의 첨단이라는 검증이기 때문입니다.

2-2. 신기법 노트 — 스크랩이 아니라 지식으로 바꾸는 양식

"좋은 글이네" 하고 북마크한 글은 다시 읽히지 않습니다. 노트가 되어야 내 것이 됩니다. 신기법 노트는 다음 네 칸으로 구성합니다.

쓰는 것 예시
기법 이름 부를 수 있는 이름 (없으면 내가 붙인다) "템플릿 캐시 오염", "nonce 재사용 체인"
원리 요약 3~5문장 — 왜 되는가의 인과 "A 조건에서 B가 초기화되지 않아 C가 가능"
출제 맥락 어떤 문제에서, 무엇을 막기 위해 필요했나 "web/hard — WAF가 직접 인젝션만 차단"
참고 링크 원문 Write-up + 원리 자료(문서·논문) 팀 블로그 URL, 공식 문서 URL

네 칸 중 무게중심은 원리 요약입니다. 링크 수집은 누구나 하고, 원리를 자기 문장으로 쓰는 사람만 그 기법을 씁니다.

2-3. 생략 채우기 — 상위 팀 Write-up의 독법

상위 팀의 Write-up은 생략이 많습니다. "여기서 standard한 trick으로 shell을 얻는다" 같은 한 줄이, 입문자에게는 세 시간의 분량입니다. 이것은 불친절이 아니라 문화입니다 — 그들의 독자는 같은 수준의 풀이자이기 때문입니다.

그래서 이 Step의 핵심 훈련은 생략된 부분을 채우는 것입니다. 방법은 질문의 사슬입니다. "여기서 shell을 얻는다"고 쓰여 있으면 — 왜 그 시점에 그것이 가능한가? 어떤 전제 조건이 성립해야 하는가? 그 조건은 문제의 어디에서 만들어졌는가? 각 질문의 답을 찾아 노트에 씁니다. 답을 찾기 위해 논문, 블로그, 해당 소프트웨어의 공식 문서를 찾아 읽는 것이 이 과정의 정상적인 일부입니다.

"왜 이게 되는가"를 스스로 증명하는 과정에서 비로소 내 기법이 됩니다. 이 문장이 이 챕터 전체의 요약입니다.

2-4. 재현과 등록 — 읽은 기법과 쓸 수 있는 기법의 차이

이해한 기법과 쓸 수 있는 기법은 다릅니다. 그 차이를 메우는 유일한 방법이 재현입니다 — 대회 측이나 팀이 문제 파일을 공개했다면, 내 랩에 받아서 Write-up을 보며 다시 풀어 봅니다.

재현이 끝나면 두 곳에 등록합니다. ① 익스플로잇 라이브러리 — Step 290에서 만들기 시작한 나만의 코드 모음. 재현한 익스플로잇을 범용 함수 형태로 정리해 넣습니다. ② 트렌드 정리 문서 — 이번 대회 시즌의 신기법을 한눈에 보는 문서. 이 문서를 팀에 공유하는 것까지가 이 Step의 완료입니다. 혼자 아는 기법은 반만 내 것이고, 설명할 수 있어야 온전히 내 것이기 때문입니다.


3. 따라 하기

3-1. Write-up 수집 — 재료 창고를 연다

지난 대회(Step 328)의 상위 팀 Write-up을 전부 수집합니다. 수집처는 세 곳입니다.

Write-up 수집 경로 (화면 예시):
- CTFtime 대회 페이지의 "Write-ups" 탭 — 참가 팀들이 직접 등록한 풀이 링크 모음
- 상위 팀의 블로그 — 순위표 상위 10팀의 이름으로 검색하면 팀 블로그가 나옴
- 대회 운영진의 공식 저장소 — 문제 파일과 출제자 풀이(author's writeup) 공개

수집의 기준은 "전부"입니다 — 내가 푼 문제의 Write-up도 읽습니다. 같은 문제의 상위 팀 풀이는 내 풀이의 효율을 교정해 주고(Step 327의 격차 분석), 못 푼 문제의 Write-up은 새 기법의 목록이 됩니다. 수집한 링크는 일단 한 문서에 몰아 넣고, 다음 단계에서 추립니다.

3-2. 신기법 노트 작성 — 한 건의 완성 예시

수집한 Write-up을 훑으며 "내가 몰랐던 것"만 추립니다. 아는 기법의 재확인은 노트가 아니라 복습으로 처리하고, 노트는 신기법 전용입니다. 완성된 신기법 노트 한 건의 예시입니다(가상의 기법으로 만든 작성 예시입니다).

[신기법 노트 #2026-014]
기법 이름: 세션 토큰의 앞부분 예측 (prefix truncation)
원리 요약:
  - 이 서비스는 세션 토큰을 "타임스탬프 + 난수 4바이트"로 만든다.
  - 타임스탬프는 가입 시각이라 프로필 페이지에서 유추 가능하고,
  - 난수가 4바이트(약 43억)가 아니라 실제로는 16비트 범위에서만 생성된다(구현 버그).
  - 따라서 목표 계정의 가입 시각 ±10분 × 65,536가지 조합의 전수 조사로
    세션을 탈취할 수 있다 — 대략 수십만 회 요청, 레이트 리밋이 없으면 수 시간.
출제 맥락: web 중상급 문제. 로그인 로직 소스가 공개되어 있고, 난수 생성기의
  시드 범위를 소스에서 발견하는 것이 입구. WAF가 단순 인젝션만 차단.
참고 링크:
  - 원문 Write-up: (팀 블로그 URL)
  - 원리 자료: 해당 프레임워크의 난수 생성 문서, CWE-330(불충분한 무작위성)
재현 상태: [ ] 아직 안 함

읽는 법: 마지막 줄 "재현 상태"가 이 양식의 핵심 장치입니다. 노트를 쓴 것과 재현한 것을 분리해 추적해야, "읽고 넘긴 기법"의 더미가 쌓이는 것을 막을 수 있습니다.

3-3. 생략 채우기 — 질문 사슬의 실제

이해가 안 되는 구간을 만났을 때의 작업 예시입니다. Write-up에 "the PRNG state leaks through the timing side channel"라는 한 줄이 있고, 왜 그런지 모르겠다고 가정합시다.

질문 사슬 기록 (화면 예시):
Q1. PRNG 상태가 "샌다"는 게 무슨 뜻인가 — 어떤 관찰 가능한 값이 내부 상태의 함수인가?
    → Write-up 앞 문단: 토큰 생성 응답 시간이 시드에 따라 달라진다고 함
Q2. 왜 응답 시간이 시드의 함수인가 — 어떤 연산이 시드 길이에 비례하는가?
    → 프레임워크 소스에서: 특정 버전의 해시 루프가 시드 초기화 횟수에 비례
Q3. 그 버전 조건은 무엇인가 — 모든 배포판이 취약한가?
    → 공식 문서의 변경 로그: v2.3~v2.5 사이만 해당. 문제 환경은 v2.4
Q4. 내가 이 기법을 다른 문제에서 알아볼 수 있는가 — 탐지 신호는 무엇인가?
    → 정리: "토큰 생성 응답 시간을 여러 번 재서 표준편차가 크면 의심"

읽는 법: Q4가 사슬의 완성입니다. "이 문제에서 왜 됐는가"를 넘어 "다음 문제에서 어떻게 알아볼 것인가"의 탐지 신호까지 도달해야, 그 기법이 다음 대회에서 발동합니다. 이 과정에서 읽은 문서와 논문은 노트의 "참고 링크" 칸으로 들어갑니다.

3-4. 재현 — 내 랩에서 다시 푼다

문제 파일이 공개된 기법 중 중요한 것을 골라 재현합니다. 절차는 고정되어 있습니다.

재현 작업 흐름 (화면 예시):
1. 대회 공식 저장소에서 문제 파일과 Dockerfile을 내려받는다
2. 내 랩에서 docker compose up으로 문제 환경을 띄운다
3. Write-up을 한 번만 읽고 덮는다
4. 기억과 노트만으로 풀이를 시도한다 — 막히면 그 지점을 기록하고 Write-up을 다시 본다
5. 플래그 확인 후, 내 손으로 처음부터 다시 쓴 풀이 스크립트를 남긴다

읽는 법: 4번의 "덮고 시도"가 이 절차의 심장입니다. Write-up을 옆에 놓고 베끼는 재현은 타이핑 연습입니다. 덮고 시도하다 막힌 지점이, 내가 아직 모르는 정확한 좌표입니다. 그 좌표만 다시 읽으면 되므로 학습 시간이 극적으로 줄고, 기억은 오래갑니다. 5번의 "처음부터 다시 쓴 스크립트"가 라이브러리에 들어갈 재료입니다.

3-5. 등록과 공유 — 트렌드 정리 문서

재현이 끝난 기법은 라이브러리와 플레이북에 등록하고, 시즌 전체를 한 문서로 묶습니다.

트렌드 정리 문서 목차 (화면 예시):
[제목] 2026 상반기 국제 대회 신기법 정리
1. 개요 — 대회 3개, 수집 Write-up N편, 추린 신기법 7건
2. 분야별 신기법
   - web: (기법 3건 — 각 5줄 요약 + 노트 링크)
   - crypto: (기법 2건)
   - pwn/rev: (기법 2건)
3. 재현 완료 기법 — 문제 파일 위치, 내 풀이 스크립트 링크
4. 다음 시즌 대비 — "자주 보인 조합", "내 라이브러리에 추가한 것"

이 문서를 팀 채널에 공유하는 것으로 이 Step의 산출물이 완성됩니다. 공유할 때 받는 질문("이거 왜 되는 거예요?")은 다음 Step 331의 멘토링으로 자연스럽게 이어지는 다리입니다.


4. 미션과 연습문제

미션 — 신기법 분석 사이클 완주

  1. 지난 대회의 상위 팀 Write-up을 3-1의 세 경로로 수집해 링크 목록을 만듭니다.
  2. 내가 몰랐던 기법만 추려 신기법 노트(2-2의 네 칸)를 5건 이상 작성합니다.
  3. 이해가 막힌 구간 하나를 골라 3-3의 질문 사슬로 "왜 되는가"를 끝까지 증명하고 기록합니다.
  4. 문제 파일이 공개된 기법 중 2건을 내 랩에서 재현합니다 — 3-4의 "덮고 시도" 규칙으로.
  5. 재현한 기법을 익스플로잇 라이브러리에 등록하고, 트렌드 정리 문서(3-5)를 완성해 팀에 공유합니다.

연습문제

문제 1. Write-up이 논문이나 뉴스보다 "반 년 빠른 지식"인 이유를, 보안 지식의 유통 경로(등장 → Write-up → 발표 → 교과서)의 관점에서 설명해 보세요.

문제 2. 신기법 노트 네 칸(이름·원리·맥락·링크) 중 "원리 요약"에 무게중심이 있는 이유를, 링크 수집과 지식의 차이로 설명해 보세요.

문제 3. 3-3의 질문 사슬에서 마지막 질문이 "다음 문제에서 어떻게 알아볼 것인가(탐지 신호)"인 이유를, 기법의 재사용성 관점에서 설명해 보세요.

문제 4. 재현할 때 Write-up을 "덮고 시도"하는 것이 "옆에 놓고 따라 하는" 것보다 학습 효율이 높은 이유를, 막힌 지점의 역할과 함께 설명해 보세요.


5. 모범 답안과 완료 기준

미션 모범 답안

검증 기준으로 확인하세요.

  1. 수집의 완결성: 세 경로(CTFtime 탭·팀 블로그·공식 저장소)가 모두 확인됐는가 — 한 경로만 본 목록은 누락이 있을 가능성이 큽니다.
  2. 노트의 품질: 5건 모두 네 칸이 채워져 있고, "원리 요약"이 자기 문장의 인과 설명인가 — 원문 베끼기는 인정하지 않습니다.
  3. 사슬의 도달: 질문 사슬 기록이 "탐지 신호"까지 도달했는가.
  4. 재현의 증거: 2건 모두 플래그 확인 기록과 "내 손으로 다시 쓴" 풀이 스크립트가 있는가.
  5. 등록과 공유: 라이브러리 커밋 로그와 팀 채널 공유 기록이 있는가.

연습문제 해답

문제 1 해답. 새 기법은 대회 문제나 실제 사고에서 처음 등장하고, 풀이자의 Write-up으로 며칠 안에 공개됩니다. 반면 그 기법이 컨퍼런스 발표로 정제되고 논문과 교과서에 실리기까지는 심사·편집 과정 때문에 반 년에서 몇 년이 걸립니다. 같은 지식이라도 유통 경로의 어느 단계에서 얻느냐가 시간차를 만들고, Write-up은 그 경로의 가장 이른 공개 지점입니다. 그래서 상위 팀 Write-up의 정기적 독해는 취미가 아니라, 최신 상태를 유지하는 유일하게 검증된 파이프라인입니다.

문제 2 해답. 링크는 찾아갈 수 있는 주소일 뿐 지식이 아닙니다 — 북마크한 글은 검색되지 않는 내 기억 바깥에 있으므로, 문제 앞에서 발동하지 않습니다. 지식이 되려는 조건은 "내 문장으로 인과를 설명할 수 있는가"이고, 원리 요약 칸이 그 조건의 검사지입니다. "A 조건에서 B가 막혀 있지 않아 C가 가능하다" 같은 인과 문장을 쓸 수 있으면 그 기법은 변형된 문제에서도 적용 가능하지만, "신기한 우회법"이라고만 기억한 기법은 똑같은 문제가 다시 나와도 못 알아봅니다. 나머지 세 칸은 이 원리를 언제 꺼낼지(맥락), 어떻게 부를지(이름), 더 깊게 갈 곳(링크)의 보조 장치입니다.

문제 3 해답. 특정 문제 하나를 푸는 기법은 일회용이지만, "이 기법이 필요한 상황을 알아보는 신호"는 영구적입니다. Q1~Q3이 "이 문제에서 왜 됐는가"의 과거형 이해라면, Q4의 탐지 신호는 "비슷한 문제를 만났을 때 무엇을 먼저 확인할 것인가"의 미래형 지식입니다. 신기법의 가치는 대부분 재사용성에 있습니다 — 대회와 실전은 같은 기법을 다른 포장으로 반복해서 내기 때문입니다. 사슬이 탐지 신호에 도달하지 못한 노트는 "풀이의 기록"이고, 도달한 노트는 "무기"입니다.

문제 4 해답. Write-up을 옆에 놓고 따라 하면 눈이 답안을 먼저 읽으므로, 내가 아는 것과 모르는 것의 경계가 측정되지 않습니다 — 전부 아는 것처럼 느껴지는 것이 이 방식의 함정입니다. 덮고 시도하면 막히는 지점이 생기고, 그 지점이 "내가 모르는 정확한 좌표"를 알려 줍니다. 학습 시간을 전 구간에 균등하게 쓰는 대신 그 좌표에만 집중할 수 있어 효율이 오르고, "스스로 뚫으려다 막힌" 경험이 있으면 그 구간의 기억이 강화됩니다. 막힌 지점의 기록은 나중에 같은 함정을 피하는 개인 체크리스트가 됩니다.

완료 기준 체크리스트

  • [ ] 지난 대회의 상위 팀 Write-up을 세 경로로 수집해 링크 목록을 만들었다
  • [ ] 내가 몰랐던 기법의 신기법 노트를 네 칸 양식으로 5건 이상 작성했다
  • [ ] 막힌 구간 하나를 질문 사슬로 끝까지 증명하고 탐지 신호까지 도달했다
  • [ ] 공개된 문제 파일로 핵심 기법 2건을 내 랩에서 재현했다
  • [ ] 재현은 "덮고 시도" 규칙으로 했고, 막힌 지점을 기록했다
  • [ ] 재현한 기법을 내 손으로 다시 쓴 스크립트로 라이브러리에 등록했다
  • [ ] 트렌드 정리 문서를 완성해 팀에 공유했다

6. 흔한 실수와 해결

벽 1. Write-up이 너무 생략돼서 첫 문단부터 못 따라가겠어요

증상: "standard한 trick으로~" 같은 표현이 나오는데, 그 trick이 나에게는 standard가 아닙니다.

원인: 상위 팀 Write-up의 상정 독자는 같은 수준의 풀이자입니다 — 생략은 무례가 아니라 그들의 문화입니다.

해결: 독서 순서를 바꾸세요. 상위 팀 Write-up을 바로 읽지 말고, 같은 문제의 중위권 팀 Write-up부터 읽습니다 — 중위권 풀이자는 생략이 적고 자세히 씁니다. 전체 그림을 잡은 뒤 상위 팀 것을 읽으면 생략된 칸이 채워진 상태로 읽힙니다. 그래도 모르는 trick은 3-3의 질문 사슬 대상입니다 — 그리고 그 trick 자체가 여러분의 신기법 노트 한 건입니다. "나에게 standard가 아닌 것"이 곧 배울 것의 목록입니다.

벽 2. 기법을 이해하려면 배경 지식(수학·프레임워크 내부)이 필요한데, 그걸 다 공부해야 하나요?

증상: crypto Write-up을 읽으려니 군론이 나오고, web Write-up을 읽으려니 프레임워크 내부 구현 얘기가 나옵니다. 끝이 없어 보입니다.

원인: 신기법은 정의상 기존 지식의 경계에 있습니다 — 모르는 배경이 나오는 것이 정상입니다.

해결: "필요한 깊이만" 파는 규칙을 두세요. 질문 사슬의 답에 필요한 만큼만 파고, 기법의 인과를 설명할 수 있게 되면 멈춥니다 — 군론 전체가 아니라 "이 공격이 성립하는 조건"까지만. 단, 파다가 "이 배경은 앞으로도 계속 나오겠다" 싶은 것(예: 타원곡선의 기본 연산)은 별도 학습 목록에 적어 두고 주간 루틴(Step 330)에서 처리합니다. 깊이 조절의 감각도 이 Step의 훈련입니다.

벽 3. 재현하려는데 문제 환경이 안 떠요

증상: 공개된 Dockerfile을 빌드했더니 이런 메시지가 뜹니다(화면 예시).

ERROR: failed to solve: package 'libfoo-1.2' has no installation candidate

원인: 대회 당시의 패키지 버전이 저장소에서 사라졌거나, 출제 환경과 내 랩의 베이스 이미지가 다릅니다.

해결: 세 단계로 대응합니다. ① 베이스 이미지를 문제가 나온 연도의 것으로 고정합니다(예: ubuntu:22.04처럼 태그를 명시). ② 사라진 패키지는 출제자 풀이(author’s writeup)의 환경 설명에서 대체재를 찾습니다. ③ 그래도 안 되면 환경 재현을 포기하고 취약 로직만 추출한 최소 재현을 만듭니다 — 기법의 학습 목표는 "그 환경을 다시 띄우는 것"이 아니라 "그 취약 조건에서 익스플로잇이 성립하는 것을 확인하는 것"이기 때문입니다. 최소 재현 스크립트도 라이브러리 등록 대상입니다.

벽 4. 노트만 30건 쌓였는데 하나도 몸에 안 남았어요

증상: 수집과 노트 작성은 했는데, 다음 대회에서 그 기법들이 발동하지 않았습니다.

원인: 읽기와 정리에서 멈추고 재현으로 넘어가지 않은 전형적 패턴입니다 — "재현 상태" 칸이 전부 빈칸인 노트 더미입니다.

해결: 비율 규칙을 도입하세요 — 노트 5건마다 재현 1건. 그리고 노트를 쓰기 전에 "이걸 재현할 가치가 있는가"를 먼저 묻는 것도 방법입니다. 재현 가치가 없는 기법은 노트도 간략히(이름과 한 줄)만 씁니다. 모든 지식이 같은 깊이로 저장될 필요는 없고, 깊이의 배분이 곧 학습 전략입니다.

벽 5. 이 기법, 실전(버그바운티)에도 쓸 수 있을까요 — 어디까지가 합법인가요?

증상: 배운 신기법을 실제 서비스에 시험해 보고 싶은 충동이 듭니다.

원인: 좋은 충동이지만 방향을 잡아야 합니다 — 기법의 이식이 곧 실력이니까요.

해결: 경계는 명확합니다 — 내 랩, 공개된 문제 환경, 그리고 버그바운티 프로그램의 범위(scope) 안에 명시된 대상만입니다. 범위 밖의 서비스에 신기법을 시험하는 것은 실력이 아니라 범죄입니다. 대신 이렇게 연결하세요 — Step 314~319의 버그바운티 채널에서 "이 기법이 통할 법한 대상"을 scope 안에서 찾는 것. 신기법 노트의 "출제 맥락" 칸이 이때 빛을 발합니다 — 맥락이 비슷한 실전 대상을 찾는 검색 키가 되니까요.


7. 정리

오늘의 개념

개념 한 줄 설명
Write-up의 위치 지식 유통 경로의 가장 이른 공개 지점 — 교과서보다 반 년 빠름
신기법 노트 이름·원리·맥락·링크의 네 칸 — 무게중심은 원리 요약
생략 채우기 상위 팀 Write-up의 생략을 질문 사슬로 자기 증명
탐지 신호 "다음에 어떻게 알아볼 것인가" — 사슬의 완성 지점
덮고 시도 재현의 규칙 — 막힌 지점이 모르는 것의 정확한 좌표
트렌드 정리 문서 시즌 신기법의 한눈 보기 — 공유해야 온전히 내 것

오늘의 도구·명령어

도구·절차 하는 일
수집 3경로 CTFtime Write-ups 탭 · 상위 팀 블로그 · 대회 공식 저장소
신기법 노트 양식 네 칸 + "재현 상태" 추적 칸
질문 사슬 왜 되는가 → 전제 조건 → 조건의 출처 → 탐지 신호
재현 5단계 파일 확보 → 환경 구동 → 덮고 시도 → 막힘 기록 → 다시 쓰기
비율 규칙 노트 5건마다 재현 1건 — 읽기 과잉 방지

명령어보다 중요한 감각

이 사이클이 처음에는 느립니다 — 한 기법을 증명하고 재현하는 데 며칠이 걸릴 수 있습니다. 그런데 몇 시즌 반복하면 신기한 일이 생깁니다. 새 Write-up을 읽는데 "이건 지난 시즌 그 기법의 변형이네"가 보이기 시작하는 것입니다. 기법의 수는 유한하고 포장만 무한하다는 것을 체감하는 순간, 여러분은 최신 지식의 소비자에서 그 지도를 그리는 사람으로 바뀝니다.

그리고 이 사이클의 부산물 — 노트, 재현 스크립트, 트렌드 문서 — 은 그대로 가르칠 수 있는 재료입니다. 다음 Step의 지식 흡수 루틴이 이 재료를 매주 자동으로 공급하고, Step 331의 멘토링이 이 재료를 사람에게 전하는 연습으로 바꿉니다.


전부 체크되면 Step 329 완료입니다.