---
# System prepended metadata

title: Категория web. Начнем с азов. Часть2.

---

# Категория web. Начнем с азов. Часть2.

# Natas6:

Встречаем форму для ввода секрета и ссылку на страницу с исходным кодом, по ссылке мы можем обнаружить кусок кода на PHP, в котором фигурирует файл secret.inc из директории includes.
![](https://i.imgur.com/nNN3AKX.png)
![](https://i.imgur.com/Ti6l8NE.png)


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

> Что интересно, сама страница представляет из себя пустую страницу, но при просмотре исходного кода можно обнаружить наш секрет.
> 
![](https://i.imgur.com/b9Lq83W.png)
![](https://i.imgur.com/c5F6n4w.png)


# Natas7:

Можно потыкаться в кнопки Home и About, и заметить, что информация о них будет отражаться в виде параметров запроса ?page=xxxx.

В поисках какой-либо доп. информации отправляемся смотреть исходный код страницы, а тут можно увидеть хинт о том, где же хранится пароль от natas8:

    <!-- hint: password for webuser natas8 is in /etc/natas_webpass/natas8 -->

![](https://i.imgur.com/CP5zYkc.png)

Но как можно воспользоваться хинтом?!

    Для решения этого таска необходимо использовать уязвимость [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)
    
![](https://i.imgur.com/JpOcyYJ.png)


# Natas8:

На странице ожидает форма с секретом для получения информации, в исходниках мы видим код на php, нас интересует та часть, в которой преобразовывается secret.
![](https://i.imgur.com/hgKOi1p.png)


Погуглив, можно получить исчерпывающий ответ о том, что и как делается, дальше дело за малым.

    Для ознакомления:

    https://www.php.net/manual/en/function.bin2hex.php

В обратном порядке декодируем наш секрет и забираем пароль от следующего уровня.
![](https://i.imgur.com/1jjzOXJ.png)

# Natas9:

![](https://i.imgur.com/N3ZGNdJ.png)

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


Важным моментом является тот факт, что в выполнение [внешней команды](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
![](https://i.imgur.com/pAh2CFe.png)

# Natas10:

![](https://i.imgur.com/27w9gho.png)

В этой задаче включена фильтрация для значения key:
![](https://i.imgur.com/bgV0qvU.png)


Обойти это экранирование достаточно просто, попробуем просто вывести всю информацию, которая хранится в папке с паролем от следующего уровня.

".*" /etc/natas_webpass/natas11 — в совокупности наша команда будет выглядит вот так grep -i ".*" /etc/natas_webpass/natas11 dictionary.txt . Она выведет уже весь текст из файлов natas11 и dictionary.txt
![](https://i.imgur.com/lVWb98v.png)
