# Домашняя работа №6 (Задачи по Path traversal на root-me)
###### tags: `Домашние задания Web Application Penetration Testing`
1) Задача: File upload - Double extensions
Нам необходимо загрузить код на этот для вывода нужного нам файла. Просматриваем страницу, видим куда можно загрузить файл.

Как следует из описания, можно загружать только графические форматы. Судя из задания, можно загрузить файл с двойным форматом, попробуем загрузить файл с php кодом и вторым форматом .gif.
Код, например будем использовать такой:
```
<?php
$resulst = shell_exec('cat ../../../.passwd');
echo "<b>$result</b>";
?>
```

Загружаем файл.
И тут же выполняем его.

Сдаем флаг.
2) Задача: File upload - MIME type
Открываем задачу, пробуем повторить шаги с предыдущего задания.

Не работает.
Открываем запрос загрузки в Burp.

Попробуем оставить MIME type, но изменить расширение файла на php.

Загружается. Но файл не видно в списке загруженных.
Тогда зайдем на старый файл, но изменим в строке на наш новый с php расширением.

Работает, сдаем флаг.
3) Задача: File upload - Null byte
Пробуем аналогичные действия, как в предыдущей задаче.

Ошибка не позволяет загрузить файл.
Переходим в Burp.
Смотрим на запрос. Судя по названию задачи, необходимо использовать нулевой байт. То есть добавление в конце файла загрузки нулевого байта для выполнения инъекции. Пробуем.

Файл загружен. Открываем.

Сдаем флаг.
4) Задача: Local File Inclusion
Просматриваем задание.

При переходе на админа, просит авторизацию. Судя по заданию, тут имеется уязвимость LFI. Админский доступ находится по пути /admin, а нам доступны директории через переменную file. Попробуем в нее передать админский путь.

Отдается страница с ключом. Сдаем флаг.
5) Задача: File upload - ZIP
Попробуем поправить наш скрипт из первого решения на открытие index.php и добавить его в zip. Пробуем загружать.

Файл не открывается - 403.
Попробуем использовать символьную ссылку и загрузить уже её в архив.

Загружаем новый архив.
Не работает.
Попробуем вместо php использовать другой формат например txt.

Пробуем.
Получаем флаг.
