Write-Up
해당 페이지는 파일 업로드 기능이 존재한다. 하지만, 업로드 후, 업로드 된 파일의 위치는 파악할 수 없고, 파일이 업로드 되었다는 "Done~" 메시지만이 출력될 뿐이다.
그림 2와 같이 빈 파일을 업로드해보았고, 아래 코드에 의해 에러메시지가 출력되었다.
error_reporting(E_ALL);
ini_set("display_errors", 1)
위 그림 2의 에러 메시지로는 별다른 정보를 얻지 못하였고, 다른 에러 메시지의 출력을 유도하기 위해서, 파일명을 길게 하여 에러를 발생시켰다. 그 결과는 아래 그림 3과 같다.
255글자의 파일명 까지는 에러 메시지가 출력되지 않았고, 256글자를 입력 하자 오른쪽과 같은 에러 메시지가 출력되어 upload_dir이 노출되었다.
위 그림 4와 같이 노출된 upload_dir/ 업로드 된 파일 명 을 요청하여, flag를 획득하였다.
참고
"KeyWord" : 파일명 최대 길이