본문 바로가기

Wargame, CTF/webhacking.kr

Webhacking.kr 41번

메인화면

<?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>

파일명에서

., <, >, / 들을 필터링하고

복사해서 upload_dir에 저장하여 flag를 작성

 

upload_dir이름을 알아내야 할것 같음

 

파일명을 공백으로 보내면 index.php의 파일경로만 나온다

파일 이름을 매우 길게 해서 오류를 내봄

 

버프슈트로 프록시에서 잡아서 파일명을 수정

 

 

upload_dir의 경로가 나옴

 

다시 정상적인 파일을 upload하고

upload_dir내의 내가 upload한 파일을 찾아보면

 

클리어

'Wargame, CTF > webhacking.kr' 카테고리의 다른 글

Webhacking.kr 44번  (0) 2020.01.28
Webhacking.kr 43번  (0) 2020.01.28
Webhacking.kr 39번  (0) 2020.01.24
Webhacking.kr 36번  (0) 2020.01.24
Webhacking.kr 34번  (0) 2020.01.24