[취업반 스터디 4달 3주차]

Minseok Jo·2024년 2월 20일
post-thumbnail

[4달 2주차 주제 : Fild Download]


1. LFI (Local File Inclusion)

1) Include 기능

  • 웹 서버 내에 업로드 되어있는(위치하고 있는) 다른 문서 혹은 파일을 현재 페이지에 포함시켜 출력해주는 함수

2) LFI 취약점이란?

  • 공격대상 서버 내에 위치한 파일을 LOAD 하도록 유도하는 공격

3) LFI 동작원리

① include 함수를 실행하면, 지정된 파일이 포함(include)되고, 이후 해당 파일이 실행된다.

② 이때 특정 파일의 경로를 지정해주게 되면, 해당 파일을 LOAD하거나 실행할 수 있게 된다.

4) LFI 공격 방식

File Upload 공격과 연계

  • 시그니처 코드 뒷부분에 웹쉘 코드가 입력된 이미지 파일을 업로드

  • 해당 이미지 파일의 경로를 include 하도록 지정하고 cmd 파라미터를 전달하면, 웹쉘이 실행되어 그 결과가 출력된다.


파일 업로드 없이 웹쉘 실행

(1) URL에 웹셀 코드 입력

(2) log 파일 저장 위치 확인

(3) log 파일을 include 후 cmd 파라미터를 전달 → log 파일 속에 기록되어 있는 웹쉘 코드가 실행됨


2. RFI (Remote File Inclusion)

1) RFI 취약점이란?

  • 원격에 위치한 파일을 LOAD 하도록 유도하는 공격

2) RFI 공격 방식

  • LFI와 비슷하지만 웹 서버 내가 아닌 원격 파일을 포함한다는 것이 차이점

  • 따라서 웹쉘 코드가 작성된 공격자 페이지를 include 해주기만 하면 된다.


3. File Download

1) File Download 취약점이란?

  • 공격자가 원하는 임의의 파일을 다운로드할 수 있는 취약점

2) 공격 방식

  • 파일이름에 경로를 적어주게 되면 디렉토리로 인식되어 원하는 파일을 가져올 수 있게 된다.
File Download Vulnerability

3) 공격 시나리오

  • DB 계정 정보 탈취
  • 서버 소스 코드 탈취 및 분석

3. File Download 대응 방안

  • File Upload와 마찬가지로 DB 내에 파일을 저장

0개의 댓글