본문 바로가기

Dreamhack

[Dreamhack_web 문제 풀이 _ image-storage]

해당 문제를 풀기 위해서도 마찬가지로 서버를 생성하고, 문제 파일을 다운로드하여야 한다. 

 생성된 서버를 클릭하면 해당과 같은 화면이 나타난다. 

 

이제 다운로드한 코드 파일을 살펴보겠다.

 

총 3개의 (index, list, upload) 코드 파일이 있다는 것을 확인하였습니다. 

 

 

첫 번째로 index.php  코드 파일입니다.

 

 

두 번째는 list.php 코드 파일이다.

 

 

세 번째로는 upload php 코드 파일입니다. 

코드를 통해 파일 upload는 upload php에서 동작을 하는데, 이에 대한 필터링의 부분은 존재하지 않는다는 사실을 알 수 있습니다. 또한 파일을 업로드하면, list에서 업로드 한 파일을 볼 수 있다는 것을 알 수 있습니다. 

더불어 list.php 코드를 살펴보면, 업로드 한 파일의 값도 함께 출력해 준다는 사실을 알 수 있습니다.

 

그렇기에  문제에서 주어진 조건을 통해 flag를 얻기 위해서, 

 

 

 

flag.txt를 출력하기 위해서 system 함수를 활용하여 코드를 작성하였습니다. 

 

 system 함수를 이용한 flag.php 파일을 작성하였습니다.

 

 

다시 서버로 돌아가서, upload를 클릭하여 파일에 flag.php을 업로드 하였습니다. 

 

파일을 업로드하였더니, 해당과 같은 화면이 나타난다는 사실을 알 수 있었습니다.

 

다시 list.php로 이동하였더니, 우리가 upload 한 flag.php파일이 있음을 확인할 수 있었습니다. 

 

해당 flag.php를 클릭해 보니 

우리가 얻고자 했던 flag가 출력된다는 사실을 알 수 있었습니다.

 

 

문제 풀이 완-료!