본문 바로가기
Wargame(CTF)

[2015 Codegate] Owlur (Web 200) 부엉이

by Hide­ 2015. 3. 17.
반응형

문제페이지에 접속하면 파일을 업로드할 수 있는 기능과 랜덤으로 올빼미의 사진을 보여주는 기능이 존재한다.

먼저 파일을 업로드해보면 jpg파일만 업로드할 수 있다고 나온다.

여러방면으로 테스트 해본결과 뒤에 무조건 맨 뒤 확장자가 .jpg 로 끝나야 업로드가 진행된다.

업로드를 하면 파일명이 랜덤으로 주어진다.

다음으로 올빼미의 사진을 보여주는 기능을 살펴보면 page인자에 LFI가 터진다.

아래와 같은 방법으로 index, upload, view 등 페이지의 소스를 가져올 수 있었다.

(맨 뒤에 .php가 자동으로 붙는다)


/owlur/index.php?page=php://filter/convert.base64-encode/resoure=upload


upload.php 를 통해 해당 페이지의 기능을 살펴볼 수 있었다. 파일명을 랜덤으로 만들어주는 함수와 

확장자 검사, 실제 업로드경로(/var/www/owlur/owlur-upload-zzzzzz/) 등을 알 수 있었지만

별다른 취약점은 보이지 않았다.

PHP 의 버전이 5.5이기때문에 Null byte 를 사용할 수 없었고 뒤에 따라오는 .php 를 제거할 방법이 없었다.

php wrapper 를 검색하며 하나하나 시도하다가 저녁먹고 다시 집으로 내려왔다.

대회 끝나고 라이트업을 봤는데 역시나 PHP Wrapper 관련 문제였다..

zip:// 을 이용하여 푸는 문제였는데 나름 참신한 문제였던 것 같다.

해당 Wrapper를 사용하면 zip파일 안에 있는 파일에 접근할 수 있다.

고로 <?php print_r(scandir(getcwd())); ?> 와 같은 내용의 php파일을 압축하고 해당 파일을 업로드 한 후

아래와 같은 페이로드를 통해 php 파일을 실행시킬 수 있다. (system 등의 함수는 막혀있음)


zip:///var/www/owlur/owlur-upload-zzzzzz/업로드시랜덤파일명.jpg%23압축파일안에있는php파일명


전체적으로 멘붕이 많이온 대회였다..더 열심히 공부해야겠다ㅋㅋ

'Wargame(CTF)' 카테고리의 다른 글

[2014 Holyshield] Write up  (0) 2015.05.26
[FC3] HELL_FIRE -> EVIL_WIZARD  (0) 2015.03.31
Level18. SUCCUBUS -> NIGHTMARE  (0) 2015.02.18
Level17. ZOMBIE_ASSASSIN -> SUCCUBUS  (0) 2015.02.18
LOS Gremlin ~ AllClear  (0) 2015.02.05