# old-41 (250)

첫 화면이다.

![](https://4149640791-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LybinW10qeKqY56a-jw%2F-M1xi_VPJxOkuImuni4L%2F-M1xiaFcGTuKQW2RDiAq%2Fimage.png?alt=media\&token=3af2b994-79b8-4499-a75b-2a71d9126285)

view-source를 클릭해 본 소스는 아래와 같다.

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

아래와 같이 `abc` 라는 이름의 파일을 올리고 Burp Suite로 잡는다.

![](https://4149640791-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LybinW10qeKqY56a-jw%2F-M21Rn22vVcABO4WcCtA%2F-M21fM1E4Mzu_t2nU_ua%2Fimage.png?alt=media\&token=4d3c11ce-2d8a-4e18-b98f-6a2e5d9f5ce8)

파일명 길이 제한인 255byte를 넘기도록 수정한다.

```bash
------WebKitFormBoundaryUazb3AHmfdkVdVwY
Content-Disposition: form-data; name="up"; filename="abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc"
Content-Type: application/octet-stream
```

아래와 같은 창이 뜬다.

![](https://4149640791-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LybinW10qeKqY56a-jw%2F-M21g3vAJh0MjcpZxbV5%2F-M21gLjKHEjZQdGrKG2-%2Fimage.png?alt=media\&token=7d1dc6d8-7805-45de-9ee3-3a2e1ea55b85)

`123` 이라는 이름의 파일을 올리고 <https://webhacking.kr/challenge/web-19/4b0e87fef7b5e8ba83894970c9806042e5d6ec9a/123> 에 접속하면 아래와 같이 플래그가 나온다.

![](https://4149640791-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LybinW10qeKqY56a-jw%2F-M21gpaIVV1rWsvn3LCc%2F-M21gqtT9EidMcVn9Vr4%2Fimage.png?alt=media\&token=94a9cb0c-3248-48ca-a65c-77564138c363)

Auth 창에 위 값을 입력하면 문제가 풀린다.

![](https://4149640791-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LybinW10qeKqY56a-jw%2F-M21gsdL7poSjDIdC4Kn%2F-M21gzjG2cEWGq4VHYaQ%2Fimage.png?alt=media\&token=c2d137ec-3ef4-4356-902e-2da186baaa2a)
