Notice
Recent Posts
Recent Comments
Link
jyamethyst21 님의 블로그
SSRF 취약점 (Server-Side Request Forgery) 본문
■ 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: 사용자 브라우저에서 코드 실행
'보안 & IT 지식 🌺' 카테고리의 다른 글
| FILE UPLOAD 취약점 (0) | 2026.04.27 |
|---|---|
| SQL INJECTION, FILE DOWNLOAD 취약점 (0) | 2026.04.24 |
| CSRF, 불충분한 세션 관리 취약점 (0) | 2026.04.22 |
| 가상 쇼핑몰 사이트 모의해킹 (0) | 2026.04.21 |
| XSS(DOM XSS, Reflected XSS, Stored XSS) (0) | 2026.04.20 |
