Tags: windows-path path-traversal 

Rating:

## Rotten Uploader (Web, 150p)

###ENG
[PL](#pl-version)

In the task we get access to file uploader service.
Uploading is disabled and we can only download files already there.
There is a simple Path-Traversal in the GET parameter so we can actually download all the files, including index.php and download.php by using `../index.php`.
Index reveals that there is `file_list.php` file, and download.php blacklists is:

```php

```

So it seems there might be something interesting there!
We need to somehow provide the file name in a way that it does not contain `file_list` but can be read by readfile.
We checked the server headers and surprisingly there was no indication that it's a unix machine.
And on windows there is the old backward compatilibity for file names longer than 8 characters, so we try to use filename `file_l~1` and it works fine.

```php

```

Wygląda na to że może tam być coś ciekawego!
Musimy jakoś dostarczyć ścieżkę do pliku tak żeby nie zawierała `file_list` ale jednocześnie żeby readfile mógł plik odczytać.
Sprawdzilismy nagłówki wysyłane przez stronę i ku naszemu zdumieniu nic nie wskazywało na maszynę unixową.
A dla windowsa istnieje wsteczna kompatybilność dla nazw plików dłuższych niż 8 znaków, więc spróbowaliśmy użyć nazwy `file_l~1` i zadziałała dając:

```php

Original writeup (https://github.com/p4-team/ctf/tree/master/2016-09-05-tokyo-mma/rotten_uploader).