# Категория 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)