본문 바로가기
다양한 TIP

SSRF(Server-Side Request Forgery) LFI(Local File Inclusion) 비교

by 유기농프로그래밍 2024. 9. 25.
반응형

1. SSRF (Server-Side Request Forgery)

정의

SSRF는 공격자가 서버로 하여금 악의적인 요청을 외부 또는 내부 네트워크 리소스에 보내도록 유도하는 취약점입니다. 이 취약점은 주로 서버가 사용자의 입력을 신뢰하여 다른 리소스에 HTTP 요청을 보내는 기능을 가지고 있을 때 발생합니다.

공격 방식

공격자는 서버가 임의의 URL 또는 IP 주소로 요청을 보낼 수 있도록 조작합니다. 이를 통해 공격자는 내부 네트워크나 외부 시스템에 접근할 수 있습니다.

주요 특징

  • 내부 네트워크로의 접근: 공격자가 외부에서 직접 접근할 수 없는 내부 시스템이나 네트워크에 서버를 이용해 접근할 수 있습니다.
  • 외부 시스템 공격: 공격자는 서버를 중간자로 사용해 외부 서버에 악의적인 요청을 보낼 수도 있습니다.
  • HTTP 요청을 포함한 다양한 프로토콜: SSRF는 HTTP뿐만 아니라 FTP, SMTP와 같은 다양한 프로토콜을 악용할 수 있습니다.

예시

  • 서버가 사용자로부터 URL을 받아 그 URL의 내용을 가져오는 기능이 있을 때, 공격자가 http://localhost/admin과 같은 내부 URL을 입력해 내부 관리 페이지에 접근할 수 있습니다.

주요 목표

  • 내부 서비스 및 리소스 노출
  • 네트워크 스캐닝
  • 외부 시스템 공격에 사용

2. LFI (Local File Inclusion)

정의

LFI는 공격자가 서버에서 로컬 파일을 불러오도록 유도하는 취약점입니다. 주로 웹 애플리케이션이 파일 경로를 동적으로 처리하는 과정에서 사용자 입력을 제대로 검증하지 않을 때 발생합니다.

공격 방식

공격자는 파일 경로를 조작하여 서버의 로컬 파일 시스템에 접근할 수 있습니다. 이때, 공격자는 서버의 중요한 파일이나 소스 코드에 접근할 수 있습니다.

주요 특징

  • 로컬 파일 노출: 서버의 로컬 파일 시스템에 있는 중요한 파일을 불러오게 하여, 민감한 정보(예: /etc/passwd, 설정 파일, 소스 코드 등)를 노출시킵니다.
  • 코드 실행 가능성: 경우에 따라 로컬 파일 포함 취약점을 악용하여 악의적인 파일을 실행하거나, 원격 코드를 포함시켜 서버에서 실행할 수도 있습니다.
  • 경로 조작: 공격자는 경로 탐색(../)을 사용하여 서버의 루트 디렉토리나 민감한 파일에 접근할 수 있습니다.

예시

  • PHP 코드에서 include($_GET['page']);와 같이 사용자의 입력을 파일 경로로 받아서 페이지를 불러오는 기능이 있을 때, 공격자가 page=../../../../etc/passwd와 같은 입력을 통해 서버의 passwd 파일을 불러올 수 있습니다.

주요 목표

  • 민감한 파일 정보 노출
  • 소스 코드 및 설정 파일 노출
  • 코드 실행 및 권한 상승

SSRF와 LFI의 주요 차이점

항목SSRF (Server-Side Request Forgery)LFI (Local File Inclusion)

목적 서버를 통해 내부 또는 외부 리소스에 요청을 보냄 서버의 로컬 파일 시스템에서 파일을 불러옴
공격 범위 네트워크 내외부 리소스 (HTTP, FTP, SMTP 등) 서버의 로컬 파일 시스템
공격자의 목표 내부 네트워크 접근, 외부 시스템 공격 민감한 파일 노출, 코드 실행 가능성
악용할 수 있는 입력 URL, IP 주소 등 파일 경로, 파일명
주요 프로토콜 HTTP, FTP, SMTP 등 다양한 프로토콜 파일 시스템 관련 기능 (주로 파일 경로 포함)
악용 가능성 네트워크 스캐닝, 내부 리소스 접근, 외부 시스템 공격 민감한 정보 노출, 코드 실행 또는 원격 코드 포함 가능

요약

  • SSRF는 서버를 이용해 공격자가 내부 또는 외부 네트워크로 요청을 보내는 것을 목표로 하는 취약점입니다. 주로 서버가 다른 리소스에 대한 요청을 처리할 때 발생하며, 내부 네트워크 리소스에 대한 비인가된 접근이 가능하게 됩니다.
  • LFI는 서버의 로컬 파일을 포함하여 공격자가 파일을 읽거나 실행할 수 있도록 유도하는 취약점입니다. 주로 파일 경로 조작을 통해 민감한 서버 파일을 노출시키는 것이 목표입니다.
반응형

댓글