본문 바로가기

개념정리

15주차 FILE INCLUDE / LFI /RFI / FILE DOWNLOAD

 

15주차 FILE INCLUDE / LFI /RFI / FILE DOWNLOAD

 


 

FILE INCLUDE 취약점

- LFI (Local File Inclusion)

- RFI (Remote File Inclusion)


 

LFI (Local Inclusion Vulenerability)

- 공격할 파일을 다른 파일에 끼워넣어 공격할 파일의 확장자와 관계없이 파일을 실행 시킨다.

- 서버에 업로드한 파일을 사용하는 파일이 필요하다

- 이 과정에서 FILE UPLOAD 취약점이 사용될 수 도있다

- 파일을 실행시켜 결과를 얻기 때문에 소스코드는 얻을 수 없다.

- INCLUDE -> 다른 파일을 특정 파일에서도 실행하고 싶을때 사용하는 명령어

- EX)

<?php include("가져올파일명"); ?>

 

-> 가져온 파일 명의 확장자와 관계없이 작성한 저 줄에 복붙이 되어 실행된다.


RFI (Remote File Inclusion)

- 원격에 있는 파일을 가져다가 실행한다.

- 웹쉘코드를 삽입하거나 업로드 할 필요가 없다.

- 링크?page=원격파일 링크

EX)

 


LFI 시나리오 - FILE UPLOAD 기능O

1. LFI 기능 확인

2. 웹쉘 업로드

3. 웹쉘 경로를 INCLUDE 파라미터에 전달


 

1. LFI 기능 확인 - php파일에서 include_once require을 사용할때


2. 웹쉘 업로드

- FILE UPLOAD 취약점이 존재할 경우 그냥 파일을 업로드 한다.

-> <?php echo system($_GET['cmd']); ?>

-> 이때 웹쉘 파일의 확장자 명은 중요하지 않다.

<?php echo system($_GET['cmd']); ?>

 

3. 웹쉘 경로를 INCLUDE 파라미터에 전달

- 웹쉘링크&cmd=명령어

 


 

LFI 시나리오 - FILE UPLOAD 기능X

1. LFI 기능 확인

2. 웹쉘 access log에 삽입

3. access log 경로 찾기

4. access log 경로를 INCLUDE 파라미터에 전달

 

 

1. LFI 기능 확인 - php파일에서 include_once require을 사용할때


2. 웹쉘 access log에 삽입

- 주소창 웹쉘 삽입

- GET /<?php system($_GET['cmd']); ?>

- 404가 뜨며 입력기록이 로그에 저장된다.

-> 입력 값

-> 이렇게 저장된다.


3. access log 경로 찾기


4. access log 경로를 INCLUDE 파라미터에 전달


RFI 시나리오

1. 페이로드 준비

2. 페이로드 삽입


 

1.페이로드 준비 

- 웹쉘을 다른 도메인 페이지에 작성 한다.


2. 페이로드 삽입

 


 

 

FILE DOWNLOAD 취약점

- 서버에 있는 임의의 파일을 다운로드 할 수 있는 취약점

- FILE NAME PARAMETER를 이용

- PATH TRAVERSAL / GRESSING 이용

- 사용하지 않는 기능에서 많이 일어난다 숨겨진 링크, 

- fileDown.php?fileName=../../../

- fileDown.php?fileName=passwd&[path/filePath/PATH]=../../../etc 도 이용 패스 변수도 예측해보기

- 파일이 실행되지 않은 형태의 소스코드를 얻을 수 있다.!!! 이를통한 SQL 취약점도 발견 가능

- DB계정 정보탈취, 서버소스코드 탈취, FILE ID 찾기

- 파일 다운로드 기능이 있는 페이지의 파라미터를 변조해서 원하는 파일을 다운로드 받는다

- http://~~?fileName=../../../../etc/passwd

- 자바코드 난독화 -> 난독화 풀어주는 사이트 이용, 혹은 직접 리버싱 

<?php 
$flieName = $_GET['fileName'];
download('/files/' . fileName);
?>

 

EX) PASS TRAVERSAL

 


FILE DOWNLOAD 취약점 보안

- DB 내 FILE 경로 저장

- DB 내 FILE 저장

- 즉, DB활용