반응형

파일을 올릴 수 있는것으로 보이며 밑에 소스보기가 있다.



<?php
  
include "../../config.php";
  include 
"./inc.php";
  if(
$_GET['view_source']) view_source();
  
error_reporting(E_ALL);
  
ini_set("display_errors"1);
?><html>
<head>
<title>Challenge 41</title>
</head>
<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}");
    
$f = @fopen("./{$upload_dir}/{$fn}","w");
    @
fwrite($f,$flag);
    @
fclose($f);
    echo(
"Done~");
  }
?>
<form method=post enctype="multipart/form-data">
<input type=file name=up><input type=submit value='upload'>
</form>
<a href=./?view_source=1>view-source</a>
</body>
</html>



파일을 올릴 수 있는것으로 보이며 밑에 소스보기가 있다.

파일명을 필터링하고 cp에 담아 

파일명을 공백으로 보내면 에러메세지가 뜬다.


Warning: copy(): Filename cannot be empty in /var/www/html/challenge/web-19/index.php on line 21


index.php의 경로가 나온다. 내가 올린 파일 경로 즉 upload_dir을 알아내야할거같다.

copy에서 오류를 띄워 오류를 보면 경로를 알수있을거같다.

파일명에 사용할수 없는 문자(ex ? , " , : , | 등)을 보내주어도 Done~이라는 성공문자가뜬다.

그렇다면 파일명이 아닌 파일명의 길이를 통해 오류를 뱉게 만들어 보자

copy(./4b0e87fef7b5e8ba83894970c9806042e5d6ec9a/dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd): failed to open stream: File name too long in와함께 오류를 뱉는다.

경로명을 확인했다. 이제 됬다 경로를 확인했으니 정상적인 파일명을 보내 파일을 만들고 저경로로 들어가서 확인해보자 /4b0e87fef7b5e8ba83894970c9806042e5d6ec9a/정상적인 파일명 으로 가보면 작성된 flag를 확인할수있다.

auth창에 넣어주면 성공!


반응형

'보안 > webhacking' 카테고리의 다른 글

webhacking.kr old-43  (0) 2019.12.05
webhacking.kr old-42  (0) 2019.12.05
webhacking.kr old-40  (0) 2019.12.03
webhacking.kr old-39  (0) 2019.12.02
webhacking.kr old-38  (0) 2019.12.02
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기