상세 컨텐츠

본문 제목

DVWA : File Inclusion - High level

Vulnerability Assessment/Web Application

by DarkSoul.Story 2025. 1. 3. 23:38

본문

반응형
이 문서에 포함된 어떠한 내용도 불법적이거나 비윤리적인 목적으로 보안 도구나 방법론을 사용하도록 가르치거나 장려하지 않습니다. 항상 책임감 있는 태도로 행동하세요. 여기에 설명된 도구나 기법을 사용하기 전에 개인 테스트 환경 또는 허가를 받았는지 확인하세요.

 

[ 환경 ]

DVWA v1.9
Burp Suite Community Edition v2024.11.2

 

1.  Source code analysis

[그림 1] High level Source code

입력값 검증

if( !fnmatch( "file*", $file ) && $file != "include.php" ) {
  • fnmatch( )를 사용하여  $file 값이 특정 패턴과 일치하는지 확인
  • 파일 이름이 file* 패턴을 따르지 않거나, 파일 이름이 " include.php"가 아닌 경우 에러 메시지를 출력하고 실행을 중단하고 에러 메시지를 출력한다.

 

2. Practical exercises

Medium level에서 사용한 방법으로 exploit 하였으나 소스코에서 확인하였듯이 파일 이름이 file*로 시작하지 않아 조건이 만족하지 못하여, 에러가 발생하는것을 확인할 수 있다.

[그림 2] Medium level exploit 실패

 

하지만 소스코드에서는 file*인 경우 허용하고 있기 때문에  Medium level에서 살펴본 PHP Wrapper에서 파일 시스템(file://)와 전체 경로를 입력해주면 소스코드를 읽을 수 있다.  

http://192.168.107.144/vulnerabilities/fi/?page=file:///var/www/html/hackable/flags/fi.php

[그림 3] PHP Wrapper의 파일 시스템(file://)을 이용하여 확인

 

LFI는 성공하였으나, RFI는 현재 상태에서는 성공하기 어렵다. 하지만 Upload 취약점이 존재하는 경우 Reverse Shell을 업로드하여 PHP Wrapper의 파일 시스템(file://)를 이용하면 가능하긴 하지만 Upload 취약점이 있으면 바로 WebShell을 업로드하여 시스템을 장악할 수 있기 때문에 큰 의미는 없다.

반응형

관련글 더보기