DreamHack

DreamHack 2단계 php-1

jhyuxxk 2021. 8. 7. 18:10

DreamHack 2단계 php-1 문제를 풀어보겠다.

 

파일 인클루전 문제

플래그가 /var/www/uploads/flag.php 에 있다는 것을 알 수 있다.

index.php

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

 

list.php
view.php

view.php 에서 flag 문자열을 필터링하여 접속할 수 없게 해놓은 것을 볼 수 있다.

 

main 접속 화면
list 접속 화면
flag.php 접속 화면

flag.php 파일은 Permission denied 되어있는 것을 볼 수 있다.

 

hello.json 접속 화면
view 접속 화면

flag 필터링을 우회하는 기법중 php wrapper 가 있다..

 

 

php wrapper

여기서 파일에 대한 filter 를 사용하여 flag.php 파일을 출력할 것이다.

 

http://host1.dreamhack.games:9636/?page=php://filter/convert.base64-encode/resource=/var/www/uploads/flag

 

위 주소를 입력하는데, page 에 대한 php://filter 를 사용하여 base64 로 인코딩하고 출력할 파일은 resource=/var/www/upload/flag 로 지정을 한다.

실행 화면

위 그림과 같이 인코딩된 값이 나오는데, 이 값을 디코딩을 해줘야 한다.

 

인코딩 값

 

디코딩 값

디코딩을 해주면,

이렇게 FLAG 가 출력된다.