피드로 돌아가기
Dev.toSecurity
원문 읽기
Global Rate Limit를 이용한 HAProxy Failover 유도로 Backup Server 플래그 탈취
PicoCTF Web Challenge Writeup: Failure Failure
AI 요약
Context
HAProxy Load Balancer가 Primary(s1)와 Backup(s2) 서버를 관리하며, s1의 Health Check 상태에 따라 트래픽을 제어하는 구조. Global Rate Limit 설정으로 인해 특정 사용자의 과도한 요청이 전체 시스템의 응답 상태에 영향을 주는 설계적 결함 존재.
Technical Solution
- Global Rate Limit 임계치인 분당 300회 요청을 초과하는 트래픽 유도
- Rate Limit 초과 시 발생하는 HTTP 503 응답을 HAProxy Health Check 실패로 연결
- 2회 연속 실패 시 s1을 Down 상태로 처리하는 HAProxy의
fall 2설정 활용 - 트래픽이 Backup 서버(s2)로 자동 전환되는 Failover 메커니즘 트리거
IS_BACKUP=yes환경 변수가 설정된 s2 서버에서 민감 데이터(Flag) 노출 유도
실천 포인트
1. Rate Limit 설정을 Global 방식이 아닌 Per-IP 방식으로 적용하여 서비스 가용성 확보
2. Health Check 전용 엔드포인트를 구축하고 일반 사용자 Rate Limit 적용 대상에서 제외
3. Backup 서버를 포함한 클러스터 내 모든 노드에 대해 동일한 보안 수준의 접근 제어 적용
4. 5xx 에러 응답이 Load Balancer의 상태 판정(Health Check)에 미치는 영향 분석