# Категория web. Начнем с азов. Часть2.
# Natas6:
Встречаем форму для ввода секрета и ссылку на страницу с исходным кодом, по ссылке мы можем обнаружить кусок кода на PHP, в котором фигурирует файл secret.inc из директории includes.


Проверим директорию на наличие любой информации, просто подставив в URL путь до файла, а там обнаружим искомый secret, который требуется указать в форме, чтобы получить пароль для перехода на natas7.
> Что интересно, сама страница представляет из себя пустую страницу, но при просмотре исходного кода можно обнаружить наш секрет.
>


# Natas7:
Можно потыкаться в кнопки Home и About, и заметить, что информация о них будет отражаться в виде параметров запроса ?page=xxxx.
В поисках какой-либо доп. информации отправляемся смотреть исходный код страницы, а тут можно увидеть хинт о том, где же хранится пароль от natas8:
<!-- hint: password for webuser natas8 is in /etc/natas_webpass/natas8 -->

Но как можно воспользоваться хинтом?!
Для решения этого таска необходимо использовать уязвимость [PathTraversal](https://owasp.org/www-community/attacks/Path_Traversal).
Суть в том, что в данном случае мы можем получить информацию, указав [абсолютный](https://portswigger.net/web-security/file-path-traversal/lab-absolute-path-bypass) путь до файла, где хранится пароль (об этом говорится в хинте) от следующего уровня.
> Также подробнее ознакомиться с этой и другими веб уязвимостями можно тут -- [portswigger](https://portswigger.net/web-security/learning-path).
> [ссылка на аналогичную лабу portswigger с path traversal](https://portswigger.net/web-security/file-path-traversal/lab-absolute-path-bypass)

# Natas8:
На странице ожидает форма с секретом для получения информации, в исходниках мы видим код на php, нас интересует та часть, в которой преобразовывается secret.

Погуглив, можно получить исчерпывающий ответ о том, что и как делается, дальше дело за малым.
Для ознакомления:
https://www.php.net/manual/en/function.bin2hex.php
В обратном порядке декодируем наш секрет и забираем пароль от следующего уровня.

# Natas9:

Снова нас встречает код на php. есть ли в массиве данных введенный ключ/индекс, если же его нет, то выполняется [внешняя программа](https://www.php.net/manual/ru/function.passthru.php) с поиском по ключу в файлике dictionary.txt

Важным моментом является тот факт, что в выполнение [внешней команды](https://en.wikipedia.org/wiki/Code_injection#Shell_injection) участвуют введенные нами данные, то есть все, что мы напишем.
Используя оператор [";"](https://itisgood.ru/2018/11/06/6-operatorov-dlja-cepochek-komandnoj-stroki-obolochki-bash/), мы можем одновременно исполнить две команды последовательно.
По опыту предыдущих тасков, нам известно, что пароли от задач хранятся по пути /etc/natas_webpass/natasXX
; cat /etc/natas_webpass/natas10

# Natas10:

В этой задаче включена фильтрация для значения key:

Обойти это экранирование достаточно просто, попробуем просто вывести всю информацию, которая хранится в папке с паролем от следующего уровня.
".*" /etc/natas_webpass/natas11 — в совокупности наша команда будет выглядит вот так grep -i ".*" /etc/natas_webpass/natas11 dictionary.txt . Она выведет уже весь текст из файлов natas11 и dictionary.txt
