SSRF (Server-Side Request Forgery)

1. 정의

SSRF는 사용자의 입력을 통해 서버가 의도하지 않은 외부 또는 내부 주소로 HTTP 요청을 보내도록 유도하는 취약점

공격자는 이를 통해 서버가 위치한 내부망 자원이나 클라우드 메타데이터 서버 등에 접근할 수 있다.


2. 주요 공격 목적

목적 설명
내부 자원 접근 127.0.0.1, localhost, 사설 IP 대역 등에 위치한 관리자 페이지 또는 내부 API 접근
클라우드 메타데이터 접근 AWS, GCP 등 클라우드 환경의 메타데이터 엔드포인트를 통한 자격증명 탈취
포트 스캐닝 내부망에 존재하는 서비스의 열려 있는 포트 식별
방화벽 우회 원래 외부에서 차단된 자원에 서버를 경유해 우회 접근
원격 코드 실행(RCE) 연계 SSRF를 통해 민감한 내부 서비스 호출 및 악의적 명령 전달 가능성

3. 공격 예시

예시 1: 내부 관리자 페이지 접근

요청: POST /fetch
파라미터: url=http://127.0.0.1/admin

예시 2: AWS 메타데이터 접근

url=http://169.254.169.254/latest/meta-data/iam/security-credentials/

4. 우회 기법

기법 설명 예시
IP 인코딩 내부 IP를 정수 등으로 표현 http://2130706433 (→ 127.0.0.1)
이중 인코딩 필터 우회 %252e%252e%252f../
DNS rebinding 외부 도메인을 내부 IP로 리디렉션 attacker.com 도메인 설정
포트 우회 비정상 포트로 접근 시도 localhost:3306, localhost:8080

5. 주요 위험 대상