jyamethyst21 님의 블로그

SSRF 취약점 (Server-Side Request Forgery) 본문

보안 & IT 지식 🌺

SSRF 취약점 (Server-Side Request Forgery)

jyamethyst21 2026. 4. 23. 22:42

■ SSRF (Server-Side Request Forgery) 

1. SSRF 정의

SSRF(Server-Side Request Forgery)는 사용자가 입력한 값을 기반으로 서버가 임의의 URL이나 내부 자원에 요청을 보내도록 유도하는 취약점이다.

즉, 공격자는 직접 접근할 수 없는 내부 시스템이나 제한된 자원에 대해 서버를 대신 이용하여 접근하게 만든다.

2. SSRF가 가능한 이유

SSRF는 다음과 같은 구조에서 발생한다.

  • 웹 서비스에서 외부 URL 또는 파일 경로를 입력받음
  • 서버가 해당 값을 그대로 사용하여 요청을 수행함
  • 입력값에 대한 검증이 부족함

예를 들어, URL 미리보기 기능, 이미지 로딩 기능, 파일 읽기 기능 등은 내부적으로 사용자 입력, 서버가 해당 URL/경로 요청, 결과 반환을 수행한다.

문제는 이때 사용자가 입력한 값을 신뢰한다는 점이다.

3. SSRF 공격 흐름

SSRF는 일반적으로 다음과 같은 흐름으로 진행된다.

1. 입력 가능한 파라미터 발견 (file, url, path 등)

2. 해당 값이 서버에서 어떻게 사용되는지 확인

3. 외부 URL 입력 → 서버가 실제 요청하는지 확인

4. 내부 주소로 변경 (localhost, 내부 경로 등)

5. 서버를 통해 내부 자원 접근

6. 민감 정보 획득

결과적으로, 사용자가 직접 접근하지 못하는 자원에 대해 서버를 통해 우회 접근한다.

 

■ SSRF 실습 유형별 정리

아래 내용은 다양한 SSRF 문제 유형을 일반화하여 정리한 것이다.

유형 1. URL 기반 내부 파일 접근

상황

  • 공지사항 또는 페이지 로딩 기능 존재
  • request에 URL 형태의 값이 포함됨
  • 서버가 해당 URL 내용을 받아 화면에 출력

풀이 흐름

1. request에서 URL 형태 값 확인
2. 해당 URL을 디코딩 → 실제 주소 확인
3. 외부 URL 입력 → 정상 동작 확인
4. 내부 경로로 변경(예: /include/설정파일)
5. 서버가 해당 파일을 읽어 response에 출력
6. 내부 코드 및 계정 정보 획득

→ 서버가 외부 URL뿐 아니라 내부 경로도 그대로 처리하는 경우 발생

유형 2. 필터 우회를 통한 SSRF

상황

  • 내부 주소 입력 시 차단됨
  • URL 문자열에 대한 필터 존재

풀이 흐름

1. 내부 URL 직접 입력 → 차단 확인
2. 우회 방법 탐색
3. Short URL 생성
4. Short URL을 request에 입력
5. 서버는 외부 URL로 인식하여 요청 수행
6. 실제로는 내부 주소로 리다이렉트
7. 내부 데이터 획득

→ 문자열 필터 기반 보안은 쉽게 우회 가능

 

유형 3. SSRF를 이용한 접근 우회

상황

  • 관리자 페이지 존재
  • 직접 접근 시 에러 발생
  • URL viewer 기능 존재

풀이 흐름

1. 관리자 페이지 경로 및 파라미터 확인
2. 직접 접근 시 차단 확인
3. URL viewer 기능 사용
4. viewer 엔드포인트 뒤에 관리자 경로 결합
5. 서버가 내부에서 해당 페이지 요청
6. 인증 우회 및 접근 성공

→ 직접 접근은 막혀 있지만, 서버를 통해서는 접근 가능

유형 4. 인코딩 + 내부 구조 탐색

상황

  • 이미지 또는 파일 뷰어 기능 존재
  • response에 Base64 인코딩 데이터 포함

풀이 흐름

1. response에서 Base64 데이터 발견
2. 디코딩 → 내부 파일명 확인
3. 해당 파일 경로를 request에 입력
4. 새로운 Base64 응답 획득
5. 반복적으로 내부 구조 탐색
6. include된 파일 추적
7. 설정 파일에서 계정 정보 획득

→ response 분석을 통해 내부 구조를 역추적

 

■ SSRF, CSRF, XSS 차이

구분                  SSRF                                                   CSRF                                                              XSS
대상 서버 사용자 사용자
공격 방식 서버가 요청을 보내도록 유도 사용자의 권한을 이용한 요청 위조 스크립트 삽입
실행 위치 서버 내부 사용자 브라우저 사용자 브라우저
핵심 개념 서버를 대신 사용 사용자 권한 도용 스크립트 실행
접근 범위 내부 시스템 사용자 계정 사용자 세션
  • SSRF: 서버를 이용해 내부 자원 접근
  • CSRF: 사용자의 권한으로 요청 실행
  • XSS: 사용자 브라우저에서 코드 실행