소스보기입니다.
해석해보겠습니다.
먼저 가장 중요한 부분은 이 부분입니다.
error_reporting(E_ALL);
ini_set("display_errors", 1);
이 부분은 에러메시지를 출력해주는 부분입니다.
그리고 BODY부분을 해석해보면
<?php
if(isset($_FILES['up']) && $_FILES['up']){
$fn = $_FILES['up']['name']; #업로드 파일명
$fn = str_replace(".","",$fn);
$fn = str_replace("<","",$fn);
$fn = str_replace(">","",$fn);
$fn = str_replace("/","",$fn);
$cp = $_FILES['up']['tmp_name']; #임시 디렉토리에 저장된 파일
copy($cp,"./{$upload_dir}/{$fn}"); #$cp에 원본 파일 파일 복사
$f = @fopen("./{$upload_dir}/{$fn}","w");
@fwrite($f,$flag);
@fclose($f);
echo("Done~");
}
?>
이렇습니다.
[정리]
1. 파일업 업로드 하면 '.', '<', '>', '/'를 제거하고 $fn에 저장한다.
2. tmp 파일에 저장된 임시 파일명을 가져와 $cp에 담는다
3. 업로드된 원본 파일의 내용을 임시파일에 복사
4. 업로드된 원본 파일에 flag 작성
에러 메시지의 반응이용하여 파일이 저장되는 디렉토리를 찾아보겠습니다.
[file name이 공백인 경우]