특징

  • PHP 애플리케이션에서 발생하는 취약점
  • include() 함수로 다른 파일을 소스 코드에 직접 삽입할 수 있고, 일반 사용자가 웹 요청을 통해 include 할 파일을 직접 설정할 수 있는 경우 발생
  • 로드하는 파일의 위치에 따라 LFI과 RFI로 구분
  • include 함수: 지정한 파일(페이지)를 현재 페이지에 포함시켜 실행시켜주는 함수

LFI ( Local File Inclusion)

  • 공격자가 공격 대상 서버에 위치한 파일을 include 하여 공격
  • 로드하는 파일의 위치가 공격 대상에 위치
  • 일반적으로 경로조작 기법을 이용하여 공격

RFI (Remote File Inclusion)

  • 원격으로 외부 서버에 있는 파일을 include 하여 공격
  • 로드하는 파일의 위치가 공격 대상 서버가 아닌 외부 서버에 위치
  • 외부의 악성 프로그램을 실행시켜 공격

 

DVWA 실습

  • DVWA 파일삽입 취약점 탭에 접근
  • URL을 확인하면 php include 함수 사용한것을 확인할수 있음

  • 다른 파일로 접근하면 include를 통해 file1으로 접근한것을 확인할 수 있음

LFI 공격시도

  • 웹페이지의 파라미터를 활용하여 경로 조작 기법으로 시스템 정보를 로드하는 /etc/passwd 입력하여 include 시도
  • LFI 공격에 성공하여 시스템 정보가 출력이 되는 것을 확인

RFI 공격시도

  • 파라미터를 활용하여 외부 웹페이지가 로드 되는지 테스트
  • google.com 이 로드된것 확인
  • 외부 악성코드 로드도 이러한 방식으로 시도

소스코드 분석

<?php
// The page we wish to display
$file = $_GET['page'];
?>
  • $_GET['page'] 변수는 사용자로부터 입력받은 값을 그대로 $file 변수에 저장하기 때문에 공격자는 서버에서 의도하지 않은 파일을 불러올 수 있음

대응방안

  1. 허용된 파일만 포함하기
    특정 경로에 있는 파일만 포함하도록 제한하거나, 허용된 파일 목록을 유지 관리
  2. 경로 조작 방지
    사용자가 경로 조작을 하지 못하도록 파일 경로에서 경로 이동 문자열 필터링
  3. 원격 파일 포함 방지
    php.ini에서 설정을 통해 allow_url_include Off 상태로 변경하여 RFI를 방지 

'CERT' 카테고리의 다른 글

웹 모의해킹: Insecure CAPTCHA  (0) 2024.10.05
웹 모의해킹: File Upload  (2) 2024.10.05
웹 모의해킹: CSRF  (2) 2024.10.05
웹 모의해킹: Brute Force  (0) 2024.10.05
웹 모의 해킹: Command Injection  (0) 2024.10.05

+ Recent posts