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. 미션과 연습문제
미션 — 신기법 분석 사이클 완주
- 지난 대회의 상위 팀 Write-up을 3-1의 세 경로로 수집해 링크 목록을 만듭니다.
- 내가 몰랐던 기법만 추려 신기법 노트(2-2의 네 칸)를 5건 이상 작성합니다.
- 이해가 막힌 구간 하나를 골라 3-3의 질문 사슬로 "왜 되는가"를 끝까지 증명하고 기록합니다.
- 문제 파일이 공개된 기법 중 2건을 내 랩에서 재현합니다 — 3-4의 "덮고 시도" 규칙으로.
- 재현한 기법을 익스플로잇 라이브러리에 등록하고, 트렌드 정리 문서(3-5)를 완성해 팀에 공유합니다.
연습문제
문제 1. Write-up이 논문이나 뉴스보다 "반 년 빠른 지식"인 이유를, 보안 지식의 유통 경로(등장 → Write-up → 발표 → 교과서)의 관점에서 설명해 보세요.
문제 2. 신기법 노트 네 칸(이름·원리·맥락·링크) 중 "원리 요약"에 무게중심이 있는 이유를, 링크 수집과 지식의 차이로 설명해 보세요.
문제 3. 3-3의 질문 사슬에서 마지막 질문이 "다음 문제에서 어떻게 알아볼 것인가(탐지 신호)"인 이유를, 기법의 재사용성 관점에서 설명해 보세요.
문제 4. 재현할 때 Write-up을 "덮고 시도"하는 것이 "옆에 놓고 따라 하는" 것보다 학습 효율이 높은 이유를, 막힌 지점의 역할과 함께 설명해 보세요.
5. 모범 답안과 완료 기준
미션 모범 답안
검증 기준으로 확인하세요.
- 수집의 완결성: 세 경로(CTFtime 탭·팀 블로그·공식 저장소)가 모두 확인됐는가 — 한 경로만 본 목록은 누락이 있을 가능성이 큽니다.
- 노트의 품질: 5건 모두 네 칸이 채워져 있고, "원리 요약"이 자기 문장의 인과 설명인가 — 원문 베끼기는 인정하지 않습니다.
- 사슬의 도달: 질문 사슬 기록이 "탐지 신호"까지 도달했는가.
- 재현의 증거: 2건 모두 플래그 확인 기록과 "내 손으로 다시 쓴" 풀이 스크립트가 있는가.
- 등록과 공유: 라이브러리 커밋 로그와 팀 채널 공유 기록이 있는가.
연습문제 해답
문제 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 완료입니다.