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활용
'개념정리' 카테고리의 다른 글
16주차 인증 / 인가 (0) | 2024.03.04 |
---|---|
14주차 SERVER SIDE SCRIPT / FILE UPLOAD / WEBSHELL / 파일 검증 우회 (1) | 2024.03.01 |
13주차 DOS / DOS 공격종류 / CSRF 공격 시나리오 / REFERRER (2) | 2024.03.01 |
12주차 CSRF POST GET / CSRF VS XSS / CSRF WITH CSS / CSRF TOKEN (0) | 2024.01.25 |
11주차 XSS대응방안 / EVENT HANDLER / CLIENT SCRIPT (1) | 2024.01.15 |