
Archive of the Top 10 Web Hacking Techniques - 2006년 이후 모든 후보작, 보존됨
2006년 이후 매년 Top 10 웹 해킹 기법 의 전체 아카이브 — 수상작뿐 아니라 매년 모든 후보 기법을 담았으며, 원래 발표 게시물의 PDF 스냅샷도 포함해 기록이 원래 호스트에서 사라져도 살아남도록 했습니다.
모든 기법을 검색하고, 연도별로 필터링하고, 브라우저를 떠나지 않고 보존된 문서를 열어볼 수 있습니다.
연도별로 찾아보기 · 무엇이 어디에 있는지 · 파일 구성 · 세 개의 시대 · PDF 아카이브 · Face the Judge · 후원 · 기여하기
2006년부터 매년 웹 보안 커뮤니티는 가장 혁신적인 웹 해킹 연구를 지명하고, 투표하여 Top 10을 선정해 왔습니다. 이 목록은 Jeremiah Grossman이 시작했으며, 오늘날에는 PortSwigger의 James Kettle이 이어가고 있습니다.
그러나 연례 발표 게시물은 사라지기 일쑤입니다 — WhiteHat Security의 블로그 (2011–2015년 목록의 본거지)는 이미 사라졌습니다. 이 저장소는 전체 기록을 하나의 오래가고 grep 가능한 장소에 보존합니다:
[!IMPORTANT] 연도별 목록은 완전합니다: 공식적으로 지명된 모든 것이 들어 있습니다. 다만 지명 라운드가 때때로 주목할 만한 연구를 놓치기도 했습니다. 어떤 해의 목록에 있어야 했을 작업을 알고 있다면 이슈나 PR을 열어주세요 — 그 해의 웹 해킹 기법 후보로 자격이 되는 것은 검토되고, 적합하다면 해당 연도에 추가됩니다. 추후 감사 추가 항목은 원래 지명과 눈에 띄게 구분되며, 심사 스킬의 현재 평가 기준에 따른 완전한 비공개 평가를 거쳐
ai-evaluation/아래에 Added / Not added로 기록됩니다.
[!TIP] 오래된 링크 중 상당수는 죽었습니다. 죽은 URL을 Wayback Machine에 붙여넣어 보세요 — 대부분이 그곳에 보존되어 있으며, PDF 아카이브는 발표 페이지 자체를 보존합니다.
webhacklist/
├── 2006.md … 2025.md ← the lists — every nominated technique, one file per year
├── <year>-ai.md ← AI-collected candidates for a year with no vote yet — machine-assembled, unreviewed, kept deliberately separate from the curated lists above
├── ai-evaluation/<year>/ ← candidate links, Added / Not added, and decision history
├── original-listings/ ← PDF snapshots of the original announcement posts
│ ├── <year>-nominees.pdf ← the full nominee list for that year
│ ├── <year>-top10.pdf ← the post naming the winning ten
│ └── README.md ← per-year index, notes, and archive rationale
├── website/ ← production progressive archive website
│ ├── archive-years.json ← publishing registry
│ └── data/ ← generated small catalogue + one JSON shard per collection
├── tools/ ← the capture pipeline that builds the PDF archive
│ ├── capture_pdf.py ← headless-Chrome capture driver + verifier
│ ├── sources.json ← manifest: what to capture, from where, with assertions
│ └── capture-report.json ← provenance log of the last run
└── assets/ ← logo and artwork
모든 <year>.md 파일은 해당 연도의 투표에서 실제로 선정된 상위 10개 기법을 ## Top 10 섹션으로 시작하며, 최종 순위대로 나열되고 각 항목에는 순위가 표시됩니다:
## Top 10
- [Blind SSTI](https://github.com/vladko312/Research_Successful_Errors) **#1**
- [ORM Leaking More Than You Joined For](https://www.elttam.com/blog/leaking-more-than-you-joined-for/) **#2**
매년 파일은 하나의 레이아웃을 사용합니다. 기법당 - 불릿 하나, 목록 안에 후행
백슬래시도 빈 줄도 없습니다.
그 해에 추천된 나머지 모든 항목은 ## Other nominations 아래에 순위 없이
원래 순서대로 나옵니다. 그래서 눈에 띈 열 개를 읽으면서도 긴 꼬리를 놓치지 않을 수
있습니다. 진짜로 참신한 작업은 대개 그 긴 꼬리에 숨어 있기 마련입니다.
[!NOTE] 순위는 발표 게시물에서 가져왔지만, 항목 텍스트는 추천 목록에 있던 그대로 유지합니다. 결과 게시물에서 우승자의 제목은 추천 당시보다 짧거나 다르게 표현되는 경우가 있어, 둘이 항상 똑같이 읽히지는 않습니다.
네 해에 걸쳐 주최측은 이해 충돌을 피하기 위해 일부 연구를 대회에서 제외했습니다.
그냥 사라지게 두는 대신, 그 항목들은 ## Other nominations 맨 위에 놓여 있으며,
각각 어느 단계에서 제외되었는지 태그가 붙어 있습니다 — 단계가 달랐기 때문에 표현도
달라집니다 — 그리고 무슨 일이 있었는지 설명하는 노트가 함께 있습니다:
| 연도 | 제외된 항목 | 이유 |
|---|---|---|
| 2016/17 | Cracking the Lens; XSS without HTML | PortSwigger 연구는 애초에 제외되었습니다. 회피(recusal) 시스템이 그 규칙을 대체할 무렵에는 다시 포함시키기엔 너무 늦어서, 추천 목록에조차 오르지 못했습니다 |
| 2019 | HTTP Desync Attacks | 커뮤니티 투표에서 압도적으로 우승했지만, James Kettle이 자신의 연구를 1위로 올리기를 거부했습니다 |
| 2024 | Gotta cache 'em all; Splitting the email atom; Listen to the whispers | 세 항목 모두 최종 15개에 올랐다가 패널 투표에서 제외되었습니다 |
| 2025 | HTTP/1.1 must die | 최종 15개에 올랐다가 패널의 톱 10에서 제외되었습니다 |
다른 모든 해에 대해 주최측은 자신들의 연구가 정상적으로 경쟁했다고 밝힙니다 — 2020년 PortSwigger의 Portable Data exFiltration은 2위를, 2021년 HTTP/2: The Sequel is Always Worse는 2위를 차지했습니다 — 따라서 그 해들에서는 빠진 것이 없습니다.
각 연도는 해당 연도의 선별 목록으로 연결됩니다. Nominated는 그 해의 공식 라운드에
들어간 기법 수를 셉니다 — 커뮤니티는 매년 열 개보다 훨씬 많이 추천했습니다.
Audit은 그 라운드가 놓쳤다가 나중에 복구되어 ## Missed from the original list
아래에 눈에 띄게 분리해 보관된 연구를 셉니다.