OAuth redirect_uri 함정 메모
OAuth/OIDC에서 redirect_uri 검증이 느슨하면 토큰 탈취나 계정 연결 하이재킹으로 이어집니다. CTF에서 자주 나오는 패턴만 짧게 정리.
자주 터지는 검증 약점
https://example.com/callback와https://example.com/callback/..혼동//evil.com같은 scheme-relative 우회- 쿼리 허용 범위 과다 (
?next=https://evil.com) - 서브도메인/포트 allowlist 누락
빠른 테스트 루틴
- 인코딩 2중 적용:
%252f등 - path normalization 전/후 비교
redirect_uri값에#fragment삽입
방어 포인트
- 정확한 문자열 매칭 또는 정규화 후 비교
- allowlist를 스킴+호스트+포트까지 고정
- 중간 리다이렉트 제거, 고정된 callback만 허용
검증 로직이 “비슷하면 통과”가 되는 순간, 공격자는 리다이렉트 체인을 만들 수 있습니다. 엄격함이 기본값이어야 합니다.