###### tags: `WEB` # WEB_Basic-Горбаконь_Кирилл-Практика_1 ## Введение в Web технологии * Устанавливаем и настраиваем **Linux Ubuntu 20.04**. ![](https://i.imgur.com/WTwhCJl.jpg) `apt update` ![](https://i.imgur.com/5IQQDiu.png) * Настраиваем подключение к репозиториям **Docker**. `apt install apt-transport-https ca-certificates curl software-properties-common` ![](https://i.imgur.com/idsmq6D.png) `curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -` ![](https://i.imgur.com/QWudVtN.png) `add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu focal stable"` ![](https://i.imgur.com/lGUdRsi.png) `apt-cache policy docker-ce` ![](https://i.imgur.com/mtav9Zu.png) * Устанавливаем **Docker CE**. `apt install docker-ce` ![](https://i.imgur.com/2gIeCjp.png) `systemctl status docker` ![](https://i.imgur.com/JvqrJ5T.png) * Устанавливаем веб-приложение **https://hub.docker.com/r/bkimminich/juice-shop**. `docker pull bkimminich/juice-shop` ![](https://i.imgur.com/KmWYxUj.png) `docker run --rm -p 3000:3000 bkimminich/juice-shop` ![](https://i.imgur.com/iA5T6cl.png) * Переходим по адресу `localhost:3000` и получаем доступ к приложению. ![](https://i.imgur.com/E0p3sm8.png) Изучим запросы браузера к приложению и форме регистрации пользователей: - При переходе на страницу отправляются GET-запросы к нескольким .js файлам. ![](https://i.imgur.com/gt2wdiK.png) - Запрос `/api/challenges/?name=Score Board` ![](https://i.imgur.com/cq1RxVx.png) - Перейдем по адресу. Разработчики дают нам задание найти спрятанную страницу "Score Board". ![](https://i.imgur.com/91oGmVL.png) * Нам оставили подсказку: найти ответ "за сценой". В одном из .js файлов находим путь к искомой странице. `cat main.js | grep score` ![](https://i.imgur.com/mgaa6YE.png) * Переходим по адресу: искомая страница найдена. ![](https://i.imgur.com/pTzif6M.png) * На этой странице расположены все задания от разработчиков. Также, доступ к ним можно получить удалив фильтрацию в адресе `/api/challenges/?name=Score Board`. ![](https://i.imgur.com/FdIqBDr.png) - При регистрации отправляется запрос `/api/Users` с введенными данными. ![](https://i.imgur.com/UHabqoX.png) * Отдельно отправляется запрос с ответом на секретный вопрос. ![](https://i.imgur.com/9e4XvHq.png) * В ответе приложения наш секретный ответ хэшируется. ![](https://i.imgur.com/80fpVsS.png) * Во время аутентификации отправляется запрос с логином и паролем. ![](https://i.imgur.com/RMhI3XS.png) * В ответе приложения содержится *access token*. ![](https://i.imgur.com/PArwBT1.png) * При использовании приложения регулярно отправляются запросы `whoami`. ![](https://i.imgur.com/cqnF2lG.png) * Сформируем запрос к приложению через **curl**. Авторизуемся в приложении с помощью команды `curl -u customer@google.com:secret_pass localhost:3000` ![](https://i.imgur.com/Vy5lbwh.png) * Сформируем запрос к приложению через **powershell**. `Invoke-WebRequest -UseBasicParsing -Uri "http://172.20.10.6:3000"` ![](https://i.imgur.com/3aMQSj0.png) * Изучим ответ приложения и распарсим его с помощью утилит **jq**. Ответ без использования утилиты **jq**: `curl http://localhost:3000/rest/admin/application-configuration` ![](https://i.imgur.com/XYmZA7V.png) Ответ с использованием утилиты **jq**: `curl http://localhost:3000/rest/admin/application-configuration | jq` ![](https://i.imgur.com/cEZkzyL.png)