0xFUN CTF 2026 / WEB
SkyPort Ops
프록시와 백엔드의 경계가 어긋나면서 발생하는 문제를 추적한 기록입니다.
구조 파악
제공 파일에서는 TCP 게이트웨이가 앞단의 9000 포트에서 요청을 받아 FastAPI 백엔드로 전달했습니다. 내부 경로 접근 정책은 게이트웨이에서 검사하고, 관리자 작업은 백엔드의 Bearer 토큰으로 확인하는 구조였습니다.
핵심 관찰
게이트웨이와 백엔드가 요청 경계를 다르게 해석해 내부 경로에 대한 요청이 백엔드로 전달되는 것을 확인했습니다. JWT 검증에서는 알고리즘과 키 유형의 조합이 고정되지 않았고, 업로드 파일명 처리에서도 저장 경로의 경계가 충분히 제한되지 않았습니다.
해결 과정
- 서비스 구성과 보호 경로를 소스 및 OpenAPI 문서와 대조했습니다.
- 단순 경로 인코딩 우회는 실패했고, 요청 파서의 불일치로 내부 응답을 관찰했습니다.
- 공개키와 토큰 검증 방식의 관계를 확인한 뒤, 파일 업로드 경계 문제까지 연결했습니다.
방어 관점
충돌하는 요청 길이 헤더를 거부하고, JWT 허용 알고리즘을 고정하며, 업로드 경로를 서버가 지정한 안전한 디렉터리로 제한해야 합니다. 실행 경로에는 업로드 파일 쓰기 권한을 주지 않아야 합니다.
실습 문제의 분석 과정을 요약했습니다. 전체 스크립트와 실습 자료는 검토 후 추가할 예정입니다.