[PentesterLab] File Include 02

쥬스몬·2022년 3월 13일
0

PentesterLab

목록 보기
5/20

PentesterLab의 File Include 문제에 대한 접근 방법을 기록

문제 페이지에 접근하면 아래와같이 page 파라미터로 페이지를 입력받는다.

싱글쿼터를 추가하여 고의적으로 syntax를 파괴하고 에러를 유발시키면 include구문에서 File not found에러가 발생한다.

여기서 일반적으로 Path Traversial이나 IIS FileUpload 시 우회트릭을 이용해서 LFI가 가능하다.
먼저 위에서 에러코드를 다시보면 입력한 값은 intro'인데 include로 들어가는 값은 intro'.php이다. 이를 통해 예상하면 index.php에서 접미사로 '.php'를 붙여주는 것이다.

INPUT : page
SERVER : page.php

이를 우회하기위해서 Null Byte 구문을 이용한다.
?page=/etc/passwd%00

LFI가 성공했지만 이 문제에서 원하는 답은 특정 바이너리를 실행시키는 것이다. 그렇다면 이를 이용하여 어떤 방식을 통해 명령을 실행 시킬 수 있을까?🤔

에러에서 봤던것처럼 index.php의 include구문에서 에러가 발생한다. 그렇다는것은 RFI(Remote File Inclusion)이 가능하다.
우리의 목표는 외부 사이트에 업로드된 아래 코드를 Include하도록 조작하는 것이다

<?php 
  system($_GET['c']);
?>

그냥 외부 파일 경로를 입력하면 위에서 봤던것과 같이 '.php' 접미사가 붙어서 File not found 에러가 발생한다.

정답은 위에서 이미 나왔다 (Null Byte😏)

profile
블로그 이사 (https://juicemon-code.github.io/)

0개의 댓글