**1. SQL-injection уязвимости:**
SQL-injection — это уязвимость веб-безопасности, которая позволяет злоумышленнику вмешиваться в запросы, которые приложение делает к своей базе данных.
1. 
В этой лабраторной надо войти в систему под именем администратора (administrator) без пароля. Для этого используется последовательность коментариев SQL ``--``, которая 'ломает' запрос сервера, и закоментирует проверку пароля, благодаря чему она не случается. Поэтому для входа в систему достаточно ввести в имени пользователя ``administrator'--``
2. 
Здесь нужно извлечь скрытые данные. Для этого в посковом запросе нужно вписать ``'+OR+1=1--``, тем самым добавив в исходный запрос
``SELECT * FROM products WHERE category = '...' AND released = 1``
новое условие и закоментировав следующее, таким образом сервер поучит запрос:
``SELECT * FROM products WHERE category = '' OR 1=1``~~' AND released = 1~~
Таким образом условие всегда будет верно и сервер выдаст все данные
3. 
Здесь при атаке используется ключевое слово ``UNION`` для извлечения данных из другой таблицы в базе данных (в данном случае таблица логинов и паролей), т.к. оно позволяет выполнять дополнительные запросы ``SELECT`` и добавить их к исходному.
Таким образом, для получения таблицы логинов и паролей, нужно ввести следущее:
``'+UNION+SELECT+username,+password+FROM+users--``
и сервер выдаст нам логины и пароли.
4. 
Здесь нужно отобразить версию базы данных. Для этого вновь используется ``UNION SELECT``. Вся атака проходит в 3 этапа:
1. ``'+UNION+SELECT+NULL,NULL#`` для проверки кол-ва столбцов в запросе
2. ``'+UNION+SELECT+‘abc’,‘def’#`` для проверки текстового типа данных
3. ``'+UNION+SELECT+@@version,+NULL#`` для вывода версии базы данных

**2. XSS уязвимости:**
1. 
В этой лабораторной нужно использовать уязвимость в функции комментариев. Так, можно вызвать функцию ``alert``, введя в коментарий следующее:
``<script>alert(1)</script>``

2. 
Здесь нужно определить местонахождение запроса на сайте. Для этого введу в поиск ``asdf1234`` и попробую найти это в коде
После этого введу ``"><svg onload=alert(1)>``, чтобы вызвать функцию ``alert``.
3. 
Здесь нужно перехватить запрос и найти строку с нашими введёнными данными

Исходя из этого, для вызова функции ``alert``, нужно ввести в запрос следующее: ``'-alert(1)-'``

4. 
Поиск файла для записи запроса
Просмотр данного файла
Исходя из содержимого, для вызова функции нужно ввести ``\"-alert(1)}//``

**3. CSRF:**
1. 
Рассмотрим запрос на смену почты
Исходя из этого редактируем тело эксплойт сервера (для этого можно воспользоваться онлайн переводчиком)


2. 
Здесь примерно тоже самое, но нужно изменить тип запроса с POST на GET, чтобы обойти проверку csrf:


**4. SSRF:**
1. 
Проверка доступности страницы ``/admin``
Заход через ``stockApi=http://localhost/admin``
При попытке удалить пользователя получаем следующий запрос:
На основе этого дописываем stockApi и отправляем запрос, тем самым удаляя пользователя:
2. 
Здесь используется уязвимость перенаправления

А далее дописать запрос на удаление пользователя, как в прошлой лабораторной
**5. RCE:**

Здесь нужно перехватить запрос и изменить занчение параметра storeId, чтобы получить нужную нам информацию
**6. Path traversal:**
1. 
Здесь взлом происходит через изображение на сайте, изменяя имя файла.
Таким образом мы получаем содержимое файла /etc/passwd
2. 
Здесь происходит тоже самое, но только указывается абсолютный адрес, в отличие от предыдущер работы, где использовались ``../`` для перехода из папки image в корневую папку