# Практическая работа №3: ## Цель работы: - Изучить основные атаки на WEB ## Задание Практической работы: На стенде по адресу portswigger.net разобрать следующие задания: Статистика пройденных заданий ![](https://i.imgur.com/Jp3hrAS.png) ### SQL-injection уязвимости: - [https://portswigger.net/web-security/sql-injection/lab-login-bypass](https://portswigger.net/web-security/sql-injection/lab-login-bypass) Выполните атаку с использованием SQL-инъекций, которая войдет в приложение как administrator пользователь. Вводим учетные данные ![](https://i.imgur.com/mtDLnuw.png) Перехватываем пакет и ищем введенные данные ![](https://i.imgur.com/2uo1SVa.png) Изменим введеные данные ![](https://i.imgur.com/9dOq5Sb.png) Попали в меню администратора ![](https://i.imgur.com/1S5XBtq.png) - [https://portswigger.net/web-security/sql-injection/lab-retrieve-hidden-data](https://portswigger.net/web-security/sql-injection/lab-retrieve-hidden-data) Лабораторная работа содержит уязвимость SQL-инъекции в фильтре категории продукта. Когда пользователь выбирает категорию, приложение выполняет SQL-запрос, подобный следующему: - SELECT * FROM products WHERE category = 'Gifts' AND released = 1 Чтобы решить проблему lab, выполните атаку SQL-инъекции, которая заставляет приложение отображать сведения обо всех продуктах в любой категории, как выпущенных, так и неизданных. Откроем сайт с категоиями ![](https://i.imgur.com/2wAA02h.png) Поставим галочку на intercept responses based on the following rules ![](https://i.imgur.com/8snxgfj.png) Напишем выражение для категории ![](https://i.imgur.com/ISegaTK.png) Отображаются сведения обо всех продуктах ![](https://i.imgur.com/qB9FmMx.png) Эта лабораторная работа содержит уязвимость SQL-инъекций в фильтре категории продукта. Результаты запроса возвращаются в ответе приложения, поэтому вы можете использовать атаку ОБЪЕДИНЕНИЯ для извлечения данных из других таблиц. Чтобы создать такую атаку, вам нужно объединить некоторые методы, которые вы изучили в предыдущих лабораториях. База данных содержит другую таблицу с именемusers, со столбцами, называемыми usernameи password. Чтобы решить лабораторную работу, выполните атаку с объединением SQL-инъекций, которая извлекает все имена пользователей и пароли, и используйте эту информацию для входа в систему как administratorпользователь. - [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) Открываем лабораторную, включаем захват пакетов, выбираем категорию подарки. Пишем выражение для категории ![](https://i.imgur.com/DMIPZrP.png) В Response смотрим пароль administratora ![](https://i.imgur.com/tH6TJBo.png) Вводим полученные данные ![](https://i.imgur.com/GoTPkfU.png) - [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) Эта лабораторная работа содержит уязвимость SQL injection в фильтре категории продукта. Вы можете использовать атаку ОБЪЕДИНЕНИЯ для получения результатов из введенного запроса. Чтобы решить лабораторную работу, отобразите строку версии базы данных. Откроем веб страницу. Включим захват пакетов. Выберим категорию подарки. Используем полезную нагрузку, подобную следующей в category параметре: ![](https://i.imgur.com/UEJrarb.png) Используйте следующую полезную нагрузку для отображения версии базы данных: ![](https://i.imgur.com/YhGAJta.png) Работа выполнена ![](https://i.imgur.com/pW858QJ.png) ### 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функцию при просмотре сообщения в блоге. Ввел следующее в поле для комментариев: - <script>alert(1)</script> - Ввел имя, адрес электронной почты и веб-сайт. - Нажал "Оставить комментарий". ![](https://i.imgur.com/wPh03oj.png) Вернул в блог. ![](https://i.imgur.com/iWLzAan.png) Лабораторная работа выполнена ![](https://i.imgur.com/lZEKlml.png) - [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 в функции отслеживания поисковых запросов. Он использует функцию JavaScriptdocument.write, которая записывает данные на страницу. document.write Функция вызывается с данными location.search, которыми вы можете управлять с помощью URL-адреса веб-сайта. Чтобы решить эту лабораторную работу, выполните межсайтовую скриптовую атаку, которая вызывает alert функцию. Ввел случайную буквенно-цифровую строку в поле поиска. ![](https://i.imgur.com/BTXKR2w.png) Щелкнул правой кнопкой мыши и проверил элемент, и обратил внимание, что случайная строка была помещена внутри img src атрибута. ![](https://i.imgur.com/aXifZ3Z.png) В строке выполнил поиск: - svg onload=alert(1) ![](https://i.imgur.com/eoIfBua.png) Лабораторная работы выполнена ![](https://i.imgur.com/xBfUqQs.png) - [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. Чтобы решить эту лабораторную работу, выполните межсайтовую скриптовую атаку, которая выходит из строки JavaScript и вызывает alert функцию. Ввел случайную буквенно-цифровую строку в поле поиска, затем используйте Burp Suite для перехвата поискового запроса и отправки его в Burp Repeater. ![](https://i.imgur.com/R8i7EQ5.png) Заменил свой ввод следующей полезной нагрузкой, чтобы вырваться из строки JavaScript и ввести предупреждение: '-alert(1)-' ![](https://i.imgur.com/fGddlkf.png) Лабораторная работа выполнена ![](https://i.imgur.com/BfaOffp.png) - [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) Эта лабораторная работа демонстрирует уязвимость отраженного DOM. Уязвимости отраженного DOM возникают, когда серверное приложение обрабатывает данные из запроса и передает данные в ответ. Затем скрипт на странице обрабатывает отраженные данные небезопасным способом, в конечном итоге записывая их в опасный приемник. Чтобы решить эту лабораторную работу, создайте инъекцию, которая вызывает alert() функцию. Включил перехват,зашел в лабораторию и ввел запрос в поиске. ![](https://i.imgur.com/GdPqlMr.png) Вернулся к инструменту прокси в Burp Suite и отправил запрос. ![](https://i.imgur.com/hHupVne.png) Открыл searchResults.js файл и обратил внимание, что ответ JSON используется при eval() вызове функции. Экспериментируя с различными строками поиска, можем определить, что ответ JSON не содержит кавычек. Однако обратная косая черта не экранируется. Чтобы решить эту лабораторную работу, введем следующий поисковый запрос: ![](https://i.imgur.com/9ShUGN0.png) Вызов alert() функции ![](https://i.imgur.com/1ITAgxV.png) Лабораторная работа выполнена ![](https://i.imgur.com/fYe3CWM.png) ### CSRF: - [https://portswigger.net/web-security/csrf/lab-no-defenses](https://portswigger.net/web-security/csrf/lab-no-defenses) Функциональность изменения электронной почты в этой лаборатории уязвима для CSRF. Чтобы решить проблему лаборатории, создайте некоторый HTML, который использует CSRF-атаку для изменения адреса электронной почты пользователя и загрузите его на свой сервер эксплойтов. Вы можете войти в свою учетную запись, используя следующие учетные данные: wiener:peter Запустил Burp, ввошел под учеными данными. ![](https://i.imgur.com/pWosWQt.png) Зашел в личный кабинет. ![](https://i.imgur.com/drIEl7V.png) Обновил адрес электонной почты ![](https://i.imgur.com/xLl6aoA.png) Запустил сервер на python ![](https://i.imgur.com/x58JiJV.png) Открыл страницу сервера в веб браузере ![](https://i.imgur.com/iIVv1dj.png) Проверил, что адрес электронной почты изменился ![](https://i.imgur.com/CfG75d0.png) Написанный html код ![](https://i.imgur.com/zsftuOC.png) - [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) Функциональность изменения электронной почты в этой лаборатории уязвима для CSRF. Он пытается блокировать атаки CSRF, но применяет защиту только к определенным типам запросов. Чтобы решить проблему, используйте свой сервер эксплойтов для размещения HTML-страницы, которая использует CSRF-атаку для изменения адреса электронной почты пользователя. Вы можете войти в свою учетную запись, используя следующие учетные данные: wiener:peter Отрыл браузер, ввел учетные данные. Обновил адрес электронной почты ![](https://i.imgur.com/4KHyO4I.png) Запустил веб сервер на python. И открыл страницу html. ![](https://i.imgur.com/AsnL3ax.png) Данные почты были изменены ![](https://i.imgur.com/MauzY5d.png) Написанный html код ![](https://i.imgur.com/lkbTDZp.png) ### 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. Открыл лабораторию ![](https://i.imgur.com/PsEExgc.png) Измените URL-адрес в stockApi параметре на http://localhost/admin. ![](https://i.imgur.com/38G6rfT.png) Здесь должен отображаться интерфейс администрирования. ![](https://i.imgur.com/EyyItDB.png) Укажем url-адрес в stockApi параметре, чтобы выполнить атаку SSRF. ![](https://i.imgur.com/29ZwqqK.png) Лабораторная работа выполнена ![](https://i.imgur.com/YJZZsv5.png) - [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. Средство проверки запасов ограничено доступом только к локальному приложению, поэтому сначала вам нужно будет найти открытое перенаправление, влияющее на приложение. Открыл лабораторию. Запустил перехват в burp. Выбрал продукт, нажал следующий продукт ![](https://i.imgur.com/anZXf1s.png) Создал URL-адрес, который использует уязвимость с открытым перенаправлением и перенаправляет на интерфейс администратора ![](https://i.imgur.com/xcPwhg7.png) Получил адрес на удаление пользователя ![](https://i.imgur.com/ItkWF9B.png) Изменил путь для удаления целевого пользователя: ![](https://i.imgur.com/mk7ueeE.png) Пользователь carlos удалён ![](https://i.imgur.com/7xtVGz2.png) Лабораторная работа ![](https://i.imgur.com/zxvTqL9.png) ### RCE: - [https://portswigger.net/web-security/os-command-injection/lab-simple](https://portswigger.net/web-security/os-command-injection/lab-simple) Эта лабораторная работа содержит уязвимость для внедрения команд операционной системы в средство проверки запасов продукта. Приложение выполняет команду командной строки, содержащую предоставленные пользователем идентификаторы продуктов и магазинов, и возвращает исходные выходные данные команды в своем ответе. Чтобы решить лабораторную работу, выполните whoamiкоманду для определения имени текущего пользователя. Использовал Burp Suite для перехвата и изменения запроса, который проверяет уровень запасов ![](https://i.imgur.com/S9gGcwm.jpg) Изменил storeIDпараметр, присвоив ему значение 1 | whoami. ![](https://i.imgur.com/0GFg609.jpg) Обратил внимание, что ответ содержит имя текущего пользователя. Лабораторная работы выполнена ![](https://i.imgur.com/7EolRAG.jpg) ### Path traversal: - [https://portswigger.net/web-security/file-path-traversal/lab-simple](https://portswigger.net/web-security/file-path-traversal/lab-simple) Эта лабораторная работа содержит уязвимость для обхода пути к файлу при отображении изображений продуктов. Чтобы решить лабораторную работу, извлеките содержимое /etc/passwdфайла. Использовал Burp Suite для перехвата и изменения запроса, который извлекает изображение продукта. ![](https://i.imgur.com/Rrrd7TJ.png) Измените filename параметр, присвоив ему значение: ![](https://i.imgur.com/a96dPra.png) Ответ содержит содержимое /etc/passwd файла. ![](https://i.imgur.com/SpVbidR.png) - [https://portswigger.net/web-security/file-path-traversal/lab-absolute-path-bypass](https://portswigger.net/web-security/file-path-traversal/lab-absolute-path-bypass) Лабораторная работа содержит уязвимость обхода пути к файлу при отображении изображений продуктов. Приложение блокирует последовательности обхода, но обрабатывает предоставленное имя файла как относящееся к рабочему каталогу по умолчанию. Чтобы решить лабораторную работу, извлеките содержимое /etc/passwdфайла. Использовл Burp Suite для перехвата и изменения запроса, который извлекает изображение продукта ![](https://i.imgur.com/6aCYB0U.png) Изменил filenameпараметр, присвоив ему значение /etc/passwd ![](https://i.imgur.com/zvn2bZ5.png) Ответ содержит содержимое /etc/passwdфайла. ![](https://i.imgur.com/NGRDmPP.png)