# WEB_Basic-Малышев_Роман-Практика-3
*Выполнил Малышев Роман*
## SQL-injection уязвимости
1. **Уязвимость SQL-инъекция, позволяющая войти в систему.** Для этого нужно знать логин, который есть в базе данных, но не нужно знать какой у него пароль.
Введем имя пользователя username и рандомный пароль.

Получим ошибку в аутентификации, если не будем перехватывать запрос и поправлять username.

Воспользуемся уязвимостью.


Также можно было ввести под username:`administrator'--` и также успешно зайти. 
2. **Уязвимость SQL-инъекции в условии WHERE, позволяющее извлекать скрытые данные.** Данная уязвимость позволяет перечислить все объекты которые есть в базе данных, то есть фильтр на поиск не будет работать.


3. **SQL-инъекция UNION атака, извлечение данных из других таблиц.**
Сначала нужно понять сколько столбцов в таблице. Сделаем за SQL запросы на один, два и три столбика. Таким образом выясним, что в таблице два столбика.



Теперь из таблицы users извличем данные по столбцам username и password.

Аналогичным образом, можно через поисковую строку. Здесь ещё лучша видны кофиденциальные данные.

Теперь зайдем в аккаунт.


4. **SQL-инъекция, запрашивающая тип и версию базы данных в MySQL и Microsoft.**
Выясним аналогично сколько в таблице содержится столбиков.



И да, # -- это комментарий, если попробуем вместо него использовать комментарий `--` -- он будет заблокирован.

Сделаем запрос, чтобы выяснить версию базы данных



## XSS уязвимости
1. **Хранимая XSS через коментарии**.

Напишем в комментариях скрипт, который высветит сообщение "Hello".

2. **XSS в DOM-модели**.


3. **Отраженная XSS**.





4. **Отраженная DOM XSS**.




## CSRF
1. **Уязвимость CSRF без защиты**.
Войдем под учетной записью: `wiener:peter`.

Обновим почту, допустим tester@google.com.

Напишем скрипт который поменяет у пользователя почту.




2. **CSRF, где проверка токена зависит от метода запроса**.
Аналогично войдем под учетной записью: `wiener:peter`.
Обновим почту, допустим tester@google.com.



Это происходит потому что приложение правильно проверяет токен, когда в запросе используется метод POST, но пропускает проверку, когда используется метод GET.
## SSRF:
1. **Базовый SSRF для локального сервера**.
Можем сделать запрос на сайт и усзнать сколько данного товара в Лондоне.

Перехватим теперь в Burp Suite и подделаем запрос, так что бы увидеть интерфейс администрирования.
Стандартный запрос.

Подделанный. 
Видим теперь пользователей.

Удалим Карлоса. 


2. SSRF с обходом фильтра через открытую уязвимость перенаправления.
Попробуем сделать как в прошлом задании, но ничего не получится.

Перейдем на следующий продукт.

Формируем теперь запрос, чтобы получить админский интерфейс. 

А теперь удалим Карлоса, здесь можно подсмотреть как правильно ввести команду.


Проверим через админский интерфейс и видим, что пользователь был успешно удален.

## RCE:
**Внедрение команд операционной системы в простом случае**.
Сделаем запрос на количетсво данного товара.

Стандартный запрос.
Модернизируем.

Получили имя пользователя.

## Path traversal
1. **File path traversal в простом случае**.
Стандартный запрос.

Модифицированный, с помощью него получили данные о пользователях.

2. **Path traversal последовательности обхода, заблокированные абсолютным обходом пути**.
Стандартный запрос.

Модифицированный.



## Итоговая статистика:







