상황파악

Wechall - PHP 0817 본문

Wargame/Wechall

Wechall - PHP 0817

otch80 2020. 1. 8. 15:45

LFI 취약점이 존재한다고 합니다.

 

LFI가 뭘까요?

Local File Inclusion 의 약자로 해석하자면 서버에 존재하는 파일을 읽어 들이는것을 말합니다.

 

단순히 url에 경로를 포함하는 문장을 사용자의 입력을 받는 곳으로 담아 보낼때 특별한 입력에 대한 검증이 없으면 서버의 파일에 접근 가능한 취약점을 뜻합니다.

 

먼저 문제에 LFI 취약점을 사용하라고 하니 입력값에 대한 검증은 없는 것으로 추측되고 입력값을 어디에 넣는지 알아야 합니다.

 

다행히 코드를 공개를 하여 입력을 받는 부분을 알 수 있습니다.

 

'which'라는 변수에 사용자의 입력값을 받는데 아래의 switch문을 통해 값에 대한 처리를 함을 알 수 있습니다.

 

case뒤에 오는 값을 보니 정수값입니다. 

 

이때 키포인트는 switch문은 정수에 대해 처리를 할 떄 문자값이 들어오면 0으로 변환시키는 점입니다.

 

따라서 case 0: 으로 묶여 아래의 $which.php의 파일을 실행할 수 있게 됩니다.

 

그럼 어떤 값을 넣어야 할까요?

 

하단에 solution.php를 입력하라는 말이 있네요.

 

url을 통해 which에 solution을 입력하여 문제를 해결합니다.

'Wargame > Wechall' 카테고리의 다른 글

Wechall - PHP My Admin  (0) 2020.02.06
Wechall - hi  (0) 2020.01.08
Wechall - Training : MySQL II  (0) 2019.12.31
Wechall - Training : MySQL I  (0) 2019.12.31
Wechall - Training: Programming 1 정리  (0) 2019.12.11