## Практическое задание 3
Итоговая статистика пройденных атак, рисунок 1.1 ниже.

Рисунок 1.1
На стенде по адресу [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'--, рисунок 1 ниже. Так же результат выполненой работы на рисунке 2.

Рисунок 1

Рисунок 2
- [https://portswigger.net/web-security/sql-injection/lab-retrieve-hidden-data](https://portswigger.net/web-security/sql-injection/lab-retrieve-hidden-data)
Чтобы извлечь скрытые данные, выполнили атаку с внедрением SQL-кода, которая заставит приложение отображать сведения обо всех продуктах в любой категории, как выпущенных, так и не выпущенных. Изменили category параметр, присвоив ему значение'+OR+1=1--, рисунок 3 ниже. Результат работы показан на рисунке 4.

Рисунок 3

Рисунок 4
- [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)
Чтобы извлечь данных из других таблиц, выполнили атаку UNION с внедрением SQL, которая извлекает все имена пользователей и пароли и использует эту информацию для входа в систему как administrator пользователь. Убедились, что запрос возвращает два столбца, каждый из которых содержит текст, используя полезные данные '+UNION+SELECT+'abc','def'--, рисунок 5 ниже.

Рисунок 5
Далее использовали следующую полезную нагрузку для получения содержимого users таблицы: '+UNION+SELECT+username,+password+FROM+users--, рисунок 6 ниже.

Рисунок 6
Зашли под пользователем administrator, результат выполненой работы показан на рисунке 7.

Рисунок 7
- [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)
Использовали атаку UNION для получения результатов введенного запроса. Определили количество столбцов, возвращаемых запросом, и столбцы, содержащие текстовые данные. Запрос возвращает два столбца, каждый из которых содержит текст, используя полезные данные, подобные приведенным ниже, в category параметре:
'+UNION+SELECT+'abc','def'#, рисунок 8 ниже.

Рисунок 8
Использовали следующую полезную нагрузку для отображения версии базы данных:
'+UNION+SELECT+@@version,+NULL#, результат выполненой работы показан на рисунке 9.

Рисунок 9
**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)
Отправили комментарий, который вызывает alert функцию при просмотре сообщения в блоге, рисунок 10 ниже.

Рисунок 10
Результат выполненой работы показан на рисунке 11.

Рисунок 11
- [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)
Содержит уязвимость межсайтового скриптинга на основе модели DOM в функции отслеживания поисковых запросов. Он использует функцию JavaScript document.write, которая записывает данные на страницу. Функция document.write вызывается с данными из location.search, которыми мы можем управлять с помощью URL-адреса веб-сайта. Выполнили атаку межсайтового скриптинга, которая вызывает alert функцию.Введите случайную буквенно-цифровую строку в поле поиска, рисунок 12 ниже.

Рисунок 12
Выполнили поиск, рисунок 13 ниже.

Рисунок 13
Увидели результат, рисунок 14 ниже.

Рисунок 14
Результат выполненой работы, рисунок 15 ниже.

Рисунок 15
- [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)
Выполнили атаку межсайтового скриптинга, которая вырывается из строки JavaScript и вызывает alert функцию. Отправили буквенно-цифровую строку в поле поиска, рисунок 16 ниже.

Рисунок 16
Использовали Burp Suite, чтобы перехватить поисковый запрос и отправить его в Burp Repeater, рисунок 17 и 18 ниже.

Рисунок 17

Рисунок 18
Увидели наш запрос, рисунок 19 ниже.

Рисунок 19
Внедрили '-alert(1)-' и увидели результат, рисунок 20 ниже.

Рисунок 20
Увидели результат выполненой работы, рисунок 21 ниже.

Рисунок 21
- [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() функцию.
Ввели в поисковую строку XSS, рисунок 22 ниже.

Рисунок 22
Переслали запрос, рисунок 23 ниже.

Рисунок 23
Ответ JSON используется с eval() вызовом функции, риуснок 24 ниже.

Рисунок 24
Ввели поисковый запрос, рисунок 25 ниже.

Рисунок 25
Увидели результат, рисунок 26 ниже.

Рисунок 26
Результат выполненой работы, рисунок 27 ниже.

Рисунок 27
**CSRF:**
- [https://portswigger.net/web-security/csrf/lab-no-defenses](https://portswigger.net/web-security/csrf/lab-no-defenses)
Уязвимость CSRF без защиты.
Создали некоторый HTML-код, который использует атаку CSRF для изменения адреса электронной почты зрителя и загрузили его на свой сервер эксплойтов.
Зашли под учетной записи wiener, рисунок 28 и 29 ниже.

Рисунок 28

Рисунок 29
Обновили адрес электронной почты, рисунок 30 ниже.

Рисунок 30
Увидели запрос в прокси, рисунок 31 ниже.

Рисунок 31
Использовали HTML-шаблон, указали нужные данные. Так же перешли на сервер эксплойтов и использовали свой HTML-шаблон. Результат выполненой работы на рисунке 32 ниже.

Рисунок 32
- [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)
Использовали свой сервер эксплойтов для размещения HTML-страницы, которая использует атаку CSRF для изменения адреса электронной почты зрителя.
Ввели учетные данные wiener, рисунок 33 ниже.

Рисунок 33
Обновили адрес, рисунок 34 ниже.

Рисунок 34
Увидели полученный запрос в прокси, рисунок 35 ниже.

Рисунок 35
Перевели в GET запрос, рисунок 36 ниже.

Рисунок 36
Использовали HTML-шаблон, указали нужные данные. Так же перешли на сервер эксплойтов и использовали свой HTML-шаблон. Результат выполненой работы на рисунке 37 ниже.

Рисунок 37
**SSRF:**
- [https://portswigger.net/web-security/ssrf/lab-basic-ssrf-against-localhost](https://portswigger.net/web-security/ssrf/lab-basic-ssrf-against-localhost)
Изменили URL-адрес проверки акций, чтобы получить доступ к интерфейсу администратора, http://localhost/admin и удалили пользователя carlos.
Нажали на check stock, рисунок 38 ниже.

Рисунок 38
Увидели запрос в прокси, рисунок 39 ниже.

Рисунок 39
Подменили stockApi на http://localhost/admin, рисунок 40 ниже.

Рисунок 40
Увидели интерфейс администрирования, рисунок 41 ниже.

Рисунок 41
Удалили пользователя Carlos, рисунок 42 ниже.

Рисунок 42
Результат выполненой работы на рисунке 43.

Рисунок 43
- [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)
Изменили URL-адрес проверки акций, чтобы получить доступ к интерфейсу администратора, http://192.168.0.12:8080/adminи удалили пользователя carlos.
Нажали на Check stock, рисунок 44 ниже.

Рисунок 44
Перехватили запрос в прокси, рисунок 45 ниже.

Рисунок 45
Изменили stockApi и обратили внимание, что невозможно заставить сервер отправить запрос напрямую другому хосту, рисунок 46 ниже.

Рисунок 46
Результат увидели на рисунке 47.

Рисунок 47
Создали URL-адрес, который использует открытую уязвимость перенаправления и перенаправляет на интерфейс администратора, и ввели его в stockApi параметр проверки запасов, рисунок 48 ниже.

Рисунок 48
Увидели страницу администратора, рисунок 49 ниже.

Рисунок 49
Удалили пользователя carlos, рисунок 50 ниже.

Рисунок 50
Результат выполненой работы на рисунке 51.

Рисунок 51
**RCE:**
- [https://portswigger.net/web-security/os-command-injection/lab-simple](https://portswigger.net/web-security/os-command-injection/lab-simple)
Выполнили whoami команду для определения имени текущего пользователя.
Перехватили запрос через прокси и выполнили команду whoami, рисунок 52 и 53 ниже.

Рисунок 52

Рисунок 53
Результат выполненой работы показан на рисунке 54 и 55.

Рисунок 54

Рисунок 55
**Path traversal:**
- [https://portswigger.net/web-security/file-path-traversal/lab-simple](https://portswigger.net/web-security/file-path-traversal/lab-simple)
Изменили filename параметр, рисунок 56 ниже.

Рисунок 56
Извлекли содержимое /etc/passwd файла, рисунок 57 ниже.

Рисунок 57
Результат выполненой работы на рисунке 58.

Рисунок 58
- [https://portswigger.net/web-security/file-path-traversal/lab-absolute-path-bypass](https://portswigger.net/web-security/file-path-traversal/lab-absolute-path-bypass)
Использовали Burp Suite для перехвата и изменения запроса на получение изображения продукта. Изменили filename параметр, присвоив ему значение /etc/passwd. рисунок 59 ниже.

Рисунок 59
Извлекли содержимое /etc/passwd файла, рисунок 60 ниже.

Рисунок 60
Результат выполненой работы на рисунке 61

Рисунок 61