picoCTF 2026 참가 후기

HoHk☔️🐁·2026년 3월 16일

CTF

목록 보기
1/1

picoCTF 2026 참가 후기 - 첫 CTF에서 47등

3줄 요약

  1. 인생 첫 CTF 대회인 picoCTF 2026에 참가해서 47등(14,500점)을 했다
  2. Binary Exploitation, Blockchain, Forensics, Reverse Engineering 4개 카테고리 올클, 개인 점수 10,800점
  3. Pwn은 예상보다 쉬웠고, paper-2(Web 500pt)는 진짜 어려웠다

시작하며

picoCTF 2026이 나의 첫 CTF 대회였다. 솔직히 CTF라는 걸 제대로 해본 적이 없어서 어디까지 풀 수 있을지 감도 안 잡혔다. 그냥 평소에 공부했던 거 써먹어보자는 마음으로 참가했는데, 결과가 예상보다 훨씬 좋게 나왔다. 운이 좋았다고 생각한다.

팀명은 ANH_1, 닉네임은 nyoHk로 참가했다.

47등, 14,500점. 초록색으로 하이라이트된 게 우리 팀이다.


개인 점수 10,800/14,500. 4개 카테고리 올클이 눈에 보인다.


대회 진행 흐름

대회 기간은 약 일주일이었고, 실질적으로 집중한 건 4일 정도다.

날짜한 일비고
3/10 (1일차)Pwn 8문제 올클 + Rev 고배점 문제 착수Pwn을 약 2시간 만에 밀어버렸다
3/10~11 (1~2일차 새벽)Rev, Blockchain 올클 + Forensics 고배점 + Web/General 일부새벽까지 달렸다
3/13 (3일차)남은 쉬운 문제들 스피드런General Skills, Forensics, Rev 100pt대 정리
3/14~16paper-2에 매달림이거 하나에 며칠을 쏟았다

1일차에 Pwn을 빠르게 정리한 게 컸다. 덕분에 나머지 시간을 Web 고배점 문제에 투자할 수 있었다.


카테고리별 리뷰

Binary Exploitation (8/8, 올클)


Pwn 문제 목록. 3월 10일 오후에 전부 풀었다.

솔직히 Pwn이 제일 걱정이었는데, 예상보다 쉬웠다. 오후 3시 51분에 Quizploit(50pt)을 시작해서 5시 48분에 Pizza Router(400pt)까지, 약 2시간 만에 8문제 전부 풀었다.

Echo Escape 1, 2는 기본적인 Buffer Overflow/Format String 문제였고, Heap Havoc은 힙 오버플로우로 함수 포인터를 덮는 전형적인 패턴이었다. tea-cash는 tcache free list 구조를 이해하고 있으면 풀 수 있었고, offset-cycle 시리즈도 오프셋 계산만 정확하면 됐다. Pizza Router가 그나마 좀 복잡했는데, 힙 주소 leak 후 함수 포인터를 조작하는 방식이라 접근법 자체는 익숙했다.

평소에 pwntools 가지고 이것저것 해본 게 도움이 많이 된 것 같다. 다만 picoCTF 특성상 교육 목적의 대회라 난이도가 실전 워게임보다는 낮았을 수 있다. 그래도 첫 CTF에서 Pwn 올클은 기분이 좋았다.

문제배점기법체감 난이도
Quizploit50기초
Echo Escape 1100Stack BOF, ROP
Echo Escape 2100Stack BOF (32bit)
tea-cash100Tcache 구조 이해중하
Heap Havoc200Heap Overflow, 함수 포인터 덮기
offset-cycle300오프셋 계산
offset-cycleV2400offset-cycle 심화
Pizza Router400Heap Leak + 함수 포인터 조작중상

Reverse Engineering (11/11, 올클)


Rev 문제 목록. JITFP(500pt)를 제일 먼저 풀었다.

Rev는 재밌었다. 특이하게 가장 높은 배점인 JITFP(500pt)를 제일 먼저 풀었다(3/10 오후 6:18). 그 다음 날 새벽에 Binary Instrumentation 시리즈(300, 400pt)를 정리하고, 3일차에 나머지 100~200pt대 문제들을 스피드런으로 밀었다.

Binary Instrumentation 3, 4가 인상 깊었다. 바이너리 계측(instrumentation) 도구를 활용해서 동적 분석하는 문제였는데, 정적 분석만으로는 풀기 어려운 구조였다. Hidden Cipher 시리즈는 암호화 로직을 역추적하는 전형적인 Rev 문제였고, Gatekeeper나 Bypass Me는 조건 분기를 우회하는 기본기 문제였다.


Blockchain (4/4, 올클)

Blockchain 카테고리는 4문제 전부 Solidity 스마트 컨트랙트 취약점 문제였다. 3월 11일 새벽에 약 30분 만에 전부 정리했다.

문제배점취약점
Access_Control200접근 제어 미흡
Front_Running300트랜잭션 선행 실행
Smart_Overflow300정수 오버플로우
Reentrance400재진입 공격

Reentrance(재진입 공격)가 제일 배점이 높았는데, 유명한 DAO 해킹 사건에서 쓰인 기법이라 공부해둔 게 그대로 나왔다. 운이 좋았다.


Forensics (8/8, 올클)

Forensics Git 시리즈(0, 1, 2)가 기억에 남는다. Git 히스토리를 뒤져서 숨겨진 정보를 찾는 문제인데, git log, git diff, git show 같은 명령어를 얼마나 잘 쓰느냐가 관건이었다. Forensics Git 2(400pt)가 시리즈 중에서 가장 까다로웠다.

Rogue Tower(300pt)와 Timeline 시리즈도 나름 재밌었다. DISKO 4는 디스크 이미지 분석 문제였는데 도구만 잘 쓰면 금방 풀렸다.


General Skills (15/17)


General Skills 문제 목록.

Printer Shares 시리즈(1, 2, 3)가 이 카테고리에서 가장 기억에 남는다. SMB 프로토콜을 이용한 문제인데, Printer Shares 2에서 SAMR 프로토콜로 비밀번호를 크래킹하는 과정이 실전적이었다. bytemancy 시리즈(0~3)도 바이트 조작을 단계별로 심화해가는 구조라 학습용으로 괜찮았다.


Web Exploitation (6/10)


Web 문제 목록. 6문제 풀었다.

Web은 6문제를 풀었고 이 카테고리에서 가장 어려웠던 문제이자 이번 대회 전체에서 가장 고생한 문제가 paper-2다.

ORDER ORDER(300pt) 는 Second-Order SQL Injection 문제였다. 회원가입 시에는 prepared statement로 안전하게 저장되지만, 리포트 생성 시 username이 쿼리에 직접 결합되는 구조였다. 문제 설명에 "I've prepared my queries everywhere! I think!" 라고 적혀있었는데, 이게 힌트였다. 모든 쿼리를 prepared 했다고 생각하지만 사실 빠뜨린 곳이 있다는 뜻이었다.

paper-2(500pt) 는 진짜 어려웠다. Redis의 LRU(Least Recently Used) Eviction 정책을 이용한 부채널(Side-channel) 공격인데, CSS 셀렉터로 봇이 특정 캐시 엔트리를 "터치"하게 유도한 다음, 더미 데이터를 밀어넣어서 터치되지 않은 엔트리만 삭제시키는 방식이다. 개념 자체도 생소했고, 타이밍 조절이 핵심이었다. 약 84번의 시도 끝에 풀었고, 3일 정도를 이 문제 하나에 쏟았다. 이건 별도 writeup으로 상세하게 정리할 예정이다.


어려웠던 점

paper-2에 매달린 3일

솔직히 paper-2가 아니었으면 대회가 훨씬 편했을 거다. Redis 캐시 용량이 5,000 slots인 걸 알아내는 것부터, Pre-fill 양(430MB)과 Eviction 양(230MB)의 정밀한 조절, 봇이 CSS를 파싱하는 동안의 15초 딜레이 계산까지... 단순히 코드를 짜는 게 아니라 인프라 레벨의 이해가 필요했다.

처음에는 노이즈 캔슬링이라는 그럴듯한 방법을 썼는데, 오히려 Redis 상태를 계속 변화시켜서 신호가 0개로 나왔다. 결국 단순하게 플러딩 마진을 넉넉히 주는 게 답이었다. 스마트한 방법이 항상 좋은 건 아니라는 걸 체감했다.


배운 점

잘했던 점

  • Pwn 올클: 2시간 만에 8문제를 밀어버린 건 평소 연습이 빛을 발한 결과다
  • 4개 카테고리 올클: Binary Exploitation, Blockchain, Forensics, Reverse Engineering 전부 올클한 건 범용성 측면에서 자신감이 생겼다
  • 시간 분배: 쉬운 문제를 빠르게 정리하고, 남은 시간을 고배점 문제에 투자하는 전략이 잘 먹혔다

다음 목표

  • Cryptography 기초부터 체계적으로 공부
  • Web 고난도 문제 연습 (SQLi 심화, SSRF, Deserialization 등)
  • pwnable.kr, pwnable.tw 같은 워게임으로 Pwn 실력 더 올리기

최종 성적 요약

카테고리풀이올클 여부개인 점수
Binary Exploitation8/8올클1,650
Blockchain4/4올클1,200
Cryptography0/12-0
Forensics8/8올클1,900
General Skills15/17-2,150
Reverse Engineering11/11올클2,400
Web Exploitation6/10-1,500
합계52/7010,800

마치며

첫 CTF치고는 운이 좋았다고 생각한다. 47등이라는 숫자도 좋지만, 그보다 평소에 공부했던 것들이 실제 문제에서 통한다는 걸 확인한 게 더 값졌다. Pwn이나 Rev 같은 바이너리 계열은 자신감이 붙었고, Blockchain 쪽도 기본적인 스마트 컨트랙트 취약점은 커버할 수 있다는 걸 알게 됐다.

paper-2를 비롯한 주요 문제들의 상세 writeup은 별도 글로 올릴 예정이다.

출처: picoCTF 2026 (Carnegie Mellon University)

profile
nyo님 좋아합니다!

0개의 댓글