# **Практическая работа №3 Web Basic**
## **Цель работы:**
- Изучить основные атаки на WEB
## Задание Практической работы:
На стенде по адресу [https://portswigger.net/web-security](https://portswigger.net/web-security) разобрать следующие задания:
**SQL-injection уязвимости:**
- [https://portswigger.net/web-security/sql-injection/lab-login-bypass](https://portswigger.net/web-security/sql-injection/lab-login-bypass)
Переходим на страницу авторизации. Вводим Username `administrator` и любой пароль, после этого отправляем запрос `Forward`

Изменяем запрос, добавляя `'--`

Бум!!! Мы авторизовались под администратором

- [https://portswigger.net/web-security/sql-injection/lab-retrieve-hidden-data](https://portswigger.net/web-security/sql-injection/lab-retrieve-hidden-data)

Выбираем любую категорию и меняем в запросе значение `category`

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

- [https://portswigger.net/web-security/sql-injection/union-attacks/lab-retrieve-data-from-other-tables](https://portswigger.net/web-security/sql-injection/union-attacks/lab-retrieve-data-from-other-tables)
Изменяем значение `category`

Получаем users таблицу

Пробуем авторизоваться под `administrator`

Мы авторизовались под администратором

- [https://portswigger.net/web-security/sql-injection/examining-the-database/lab-querying-database-version-mysql-microsoft](https://portswigger.net/web-security/sql-injection/examining-the-database/lab-querying-database-version-mysql-microsoft)
Изменяем значение поля `category`

Получаем версию БД

**XSS уязвимости:**
- [https://portswigger.net/web-security/cross-site-scripting/stored/lab-html-context-nothing-encoded](https://portswigger.net/web-security/cross-site-scripting/stored/lab-html-context-nothing-encoded)

Захдим на любой пост и в поле для комментрариев вводим `<script>alert(1)</script>`

Опубликовываем комментарий

Возвращаемся в блог и видим, что наш скрипт выполнился

- [https://portswigger.net/web-security/cross-site-scripting/dom-based/lab-document-write-sink](https://portswigger.net/web-security/cross-site-scripting/dom-based/lab-document-write-sink)
Вводим случайную буквенно-цифровую строку в поле поиска


Нажимаем пкм и заходим в просмотр элемента
Видим, что строка была помещена внутри `img src` атрибута

Заново выполняем поиск, введя в поле `"><svg onload=alert(1)>`



- [https://portswigger.net/web-security/cross-site-scripting/contexts/lab-javascript-string-angle-brackets-html-encoded](https://portswigger.net/web-security/cross-site-scripting/contexts/lab-javascript-string-angle-brackets-html-encoded)
Отправляем случайную буквенно-цифровую строку в поле поиска


Заменяем ввод следующей командой
`'-alert(1)-'`

Видим, что при перезагрузке страницы вылезает предупреждение


- [https://portswigger.net/web-security/cross-site-scripting/dom-based/lab-dom-xss-reflected](https://portswigger.net/web-security/cross-site-scripting/dom-based/lab-dom-xss-reflected)

Выполняем поисковый запрос, введя в строку поиска `\"-alert(1)}//`





**CSRF:**
- [https://portswigger.net/web-security/csrf/lab-no-defenses](https://portswigger.net/web-security/csrf/lab-no-defenses)

Входим в учётную запись под учётными данными `wiener:peter`

Добавляем электронную почту

Переходим во вкладку `Go to exploit server`

В поле `Body` вписываем следующий html шаблон

Отправляем его

- [https://portswigger.net/web-security/csrf/lab-token-validation-depends-on-request-method](https://portswigger.net/web-security/csrf/lab-token-validation-depends-on-request-method)

Входим в учётную запись под учётными данными `wiener:peter`

Добавляем новую почту


Отправляем запрос в Burp repeater


Получаем ошибку

меняем POST на GET

пишем эксплойт

отправляем

**SSRF:**
- [https://portswigger.net/web-security/ssrf/lab-basic-ssrf-against-localhost](https://portswigger.net/web-security/ssrf/lab-basic-ssrf-against-localhost)


Посещаем любой продукт и нажимаем`Check stock`

Изменяем в запросе параметр `stokApi`

Отображается интерфейс администрирования

Смотрим html код и определяем url для удаления пользователя

Затем снова отправляем запрос и меняем значение параметра `stockApi`


- [https://portswigger.net/web-security/ssrf/lab-ssrf-filter-bypass-via-open-redirection](https://portswigger.net/web-security/ssrf/lab-ssrf-filter-bypass-via-open-redirection)

Отправляем запрос и меняем значение параметра `stockApi`

Затем снова отправляем запрос и меняем значение параметра `stockApi`


**RCE:**
- [https://portswigger.net/web-security/os-command-injection/lab-simple](https://portswigger.net/web-security/os-command-injection/lab-simple)

Переходим на любой товар и нажимаем `Check stock`, затем в Burp меняем в запросе параметр `storeID`

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


**Path traversal:**
- [https://portswigger.net/web-security/file-path-traversal/lab-simple](https://portswigger.net/web-security/file-path-traversal/lab-simple)

При отправке запросов, меняем значение параметра `filename`


- [https://portswigger.net/web-security/file-path-traversal/lab-absolute-path-bypass](https://portswigger.net/web-security/file-path-traversal/lab-absolute-path-bypass)

При отправке запросов, меняем значение параметра `filename`


## Dashboard
