본문 바로가기

카테고리 없음

[webhacking] dreamhack image-storage

728x90

문제

이 문제는 파일 업로드 취약점을 이용한 문제이다.

 

*파일 업로드 취약점이란?

파일 업로드 기능이 존재하는 웹 어플리케이션에서 확장자 필터링이 제대로 이루어지지 않았을 경우 공격자가 악성 스크립트 파일(웹쉘)을 업로드하여 해당 웹쉘을 통해 원격에서 시스템을 제어할 수 있는 취약점

 

풀이

문제 서버에 접속 시 첫 화면이다.

 

Home, List 를 클릭하면 별다른 변화는 없고 Upload 클릭 시 위와 같은 화면이 뜬다.

파일 선택을 클릭하면 폴더가 열리고 내 기기의 파일을 업로드 할 수 있다.

 

아무거나 올려보면 당연하게도 에러메세지가 뜬다.

주어진 문제 파일을 열어보면 이렇게 3개의 php 파일이 주어져있다.

문제 설명에서 파일 업로드 취약점을 이용하라고 했으니 upload.php 코드를 봐야겠다.

 

upload.php

코드를 살펴보면 입력값에 대한 필터링 부분이 없다. 따라서 웹쉘 파일을 업로드하여 flag.py 파일을 찾아주면 된다.

 

flag가 존재하는 /flag.txt 경로로 이동하는 command를 실행하는 php코드를 작성해준다. 그냥 메모장에 작성하고 파일확장자를 php로 저장하면 된다.

 

*system()

주어진 command를 실행하고 결과를 출력한다.

*cat 명령어

텍스트 파일의 내용을 확인하거나 간단한 파일을 생성하고자 할 경우 사용하는 명령어

 

 

이제 파일을 업로드 해주고

 

list에 들어가면 방금 올린 파일을 확인할 수 있고 그 안에서 flag를 획득할 수 있다.

 

짠 성공 ~ !

 

https://dreamhack.io/wargame/challenges/38

 

image-storage

php로 작성된 파일 저장 서비스입니다. 파일 업로드 취약점을 이용해 플래그를 획득하세요. 플래그는 /flag.txt에 있습니다. Reference Server-side Basic

dreamhack.io

 

728x90