문제페이지에 접속하면 파일을 업로드할 수 있는 기능과 랜덤으로 올빼미의 사진을 보여주는 기능이 존재한다.
먼저 파일을 업로드해보면 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 |