№3 Основные атаки и паттерны === ## Цель работы: - Изучить основные атаки на WEB **SQL-injection уязвимости** --- **1. Lab: SQL injection vulnerability allowing login bypass** Включаем intercept во вкладке proxy и вводим логин и пароль на сайте ![](https://i.imgur.com/dJ8dEVU.png) Перехватим запрос ![](https://i.imgur.com/ZAZOpd6.png) Пропишем sql-инъекцию (username закомментирован, он войдет в учетную запись указанного пользователя) и пропустим запрос дальше ![](https://i.imgur.com/XGxthLe.png) Залогинимся на сайте ![](https://i.imgur.com/7JYU404.png) **2. Lab: SQL injection vulnerability in WHERE clause allowing retrieval of hidden data** Заходим на страницу для реализации инъекции. Переходим во вкладку Corporate gifts и добавляем инъекцию (у параметра category всегда будет true, поэтому он выведет все товары) в заголовок пакета ![](https://i.imgur.com/HOSjM7L.png) Переходим во вкладку Options в bupr suite и ставим галочку в параметре "intercept responses based on the following rules" ![](https://i.imgur.com/tLapWkW.png) Пропускаем запрос дальше и видим что каталог товаров выводит теперь все что есть ![](https://i.imgur.com/qF4AzGy.png) **3. Lab: SQL injection UNION attack, retrieving data from other tables** Заходим на страницу лабораторной и переходим во вкладку Pets. Перехватываем запрос ![](https://i.imgur.com/fAHqrdi.png) Отправим его в repeater ![](https://i.imgur.com/yo36juD.png) Пытаемся вывести данные пользователей с помощью инъекции в заголовке, котораы должна вывести данные столбцов username, password из таблицы users ![](https://i.imgur.com/aAzqCmP.png) Залогинимся с помощью этих данных ![](https://i.imgur.com/DQ6ebHK.png) **4. Lab: SQL injection attack, querying the database type and version on MySQL and Microsoft** Открываем страницу и переходим в любую из вкладок, в моем случае это вкладка Tech gifts ![](https://i.imgur.com/dcAqdue.png) Переносим перехваченный запрос в repeater ![](https://i.imgur.com/3nR439C.png) Вводим инъекцию и ищем в responce строку 8.0.30 (в респонсе бул хинт в котором было это написано). Вводим инъекцию в заголовок, которая должна вывести версию и добавляем еще 1 столбец, т.к иначе запрос выдает ошибку ![](https://i.imgur.com/xjIPSwd.png) В туториале этого нет, но запрос без "#" на конце выводит ошибку ![](https://i.imgur.com/LU0ixkw.png) **XSS уязвимости** --- При реализации такой атаки приложение получает данные из ненадежного источника и включает эти данные в свои последующие HTTP-ответы **1. Lab: Stored XSS into HTML context with nothing encoded** Заходим в любой блов и пиишем к нему комментарий, скрипт, который приостановит работу, до тех пор пока пользователь не нажмёт «ОК» ![](https://i.imgur.com/SgXi5nn.png) Запостим его ![](https://i.imgur.com/VoftkOn.png) Вернемся обратно в блог и увидем всплывающее окно ![](https://i.imgur.com/oG3bSil.png) **2. Lab: DOM XSS in document.write sink using source** Переходим по ссылке лабораторной работы, вводим в поисковик любую последовательность символов и нажимаем кнопку search ![](https://i.imgur.com/tV1hf3B.png) Исследуем код страницы и видим что у скрипта не закрыты скобки ![](https://i.imgur.com/smqnMih.png) Прописываем alert-функцию ![](https://i.imgur.com/rHIuhKm.png) Нажимаем кнопку search и видим результат ![](https://i.imgur.com/GbN7SFW.png) **3. Lab: Reflected XSS into a JavaScript string with angle brackets HTML encoded** Запускаем лабораторную, вводим в поисковим набор символов и перехватываем запрос ![](https://i.imgur.com/3YJ2gnF.png) Отправляем перехваченый пакет в repeater и отключаем interсept. Прописываем js-функцию в строку поисковика ![](https://i.imgur.com/wFUyT5Y.png) Результат ![](https://i.imgur.com/VRBGHmN.png) **4. Lab: Reflected DOM XSS** В поисковике ищем xss, просматриваем get-запрос в http history ![](https://i.imgur.com/yx1LaVy.png) Переходим в таргет, находим js файл и вводим в поисковую строку функцию, которая приостановит работу сайта и выведет окно с "1" ![](https://i.imgur.com/M21Lntp.png) Результат ![](https://i.imgur.com/2fKj4II.png) **CSRF** --- **1. Lab: CSRF vulnerability with no defenses** Залогинимся под учетной записью wiener с паролем peter и изменим почту. Просмотрим http историю ![](https://i.imgur.com/Dvqt5k7.png) Переходим в csrf poc generator и ставим галочку в include auto-submit script. Затем нажимаем кнопку regenerate, потом copy html, после этого можно закрыть вкладку (это заставит пользователя-жертву непреднамеренно выполнить какое-либо действие) ![](https://i.imgur.com/B2NL0jM.png) Далее на странице браузера нажимаем кнопку go to exploit server и вставляем скопированный html в body и меняем почтовый адрес ![](https://i.imgur.com/HqFoIkb.png) Сохраняем с помощью кнопки store и просматриваем изменения с помощью view exploit ![](https://i.imgur.com/pTLhkEP.png) **2. Lab: CSRF where token validation depends on request method** Залогинимся под учетной записью wiener с паролем peter и изменим почту. Просмотрим http историю. Отправим запрос в repeater ![](https://i.imgur.com/5Su4b4k.png) Меняем requesr method и переходим в csrf poc generator, меняем адрес почты и ставим галочку в include auto-submit script. Затем нажимаем кнопку regenerate, потом copy html, после этого можно закрыть вкладку ![](https://i.imgur.com/aPWSLgZ.png) Далее на странице браузера нажимаем кнопку go to exploit server и вставляем скопированный html в body и сохраняем ![](https://i.imgur.com/oy5oRqL.png) Просматриваем изменения с помощью view exploit ![](https://i.imgur.com/8A9oOTU.png) **SSRF** --- **1. Lab: Basic SSRF against the local server** Нажимаем check stoks и перехватываем запрос, в поле stockApi прописываем http://localhost/admin (это может заставить сервер установить соединение с внутренними службами в инфраструктуре организации) и нажимаем forward ![](https://i.imgur.com/cNfIXig.png) Выыод проверяем с помощью просмотра элементов страницы ![](https://i.imgur.com/kkwnWnk.png) Повторяем действия из первого пункта, но в поле stockApi прописываем http://localhost/admin/delete?username=carlos для удаления пользователя carlos и пропускаем запрос ![](https://i.imgur.com/2n0HFPU.png) Снова прописываем http://localhost/admin и проверяем список users ![](https://i.imgur.com/aduh5JK.png) **2. Lab: SSRF with filter bypass via open redirection vulnerability** Зайдем на страницу товара, нажмем кнопку check stoks и перехватываем запрос, в поле stockApi прописываем /product/nextProduct?path=http://192.168.0.12:8080/admin ![](https://i.imgur.com/2L4CayL.png) В результате нам выводится список пользователей, исследуем код страницы и находим как удалить бзера /http://192.168.0.12:8080/admin/delete?username=carlos ![](https://i.imgur.com/oB9p0KL.png) Пропысываем эту строку в поле stockApi ![](https://i.imgur.com/4L4DQ3e.png) Проверяем список юзеров ![](https://i.imgur.com/Ot1FYGI.png) **RCE** --- **1. Lab: OS command injection, simple case** Зайдем на страницу товара, нажмем кнопку check stoks и перехватываем запрос, в поле productId дописываем '|whoami' ![](https://i.imgur.com/eBeixY3.png) Нажимаем forward и получаем ответ ![](https://i.imgur.com/pP2PkQA.png) **Path traversal** --- **1. Lab: File path traversal, simple case** Переходим во вкладку Options в bupr suite и ставим галочку в параметре "intercept responses based on the following rules" ![](https://i.imgur.com/tLapWkW.png) Переховим во вкладку одного из товаров и изменяем заголовок. Результат проверяем во вкладке http history ![](https://i.imgur.com/jgdVglc.png) **2. Lab: File path traversal, traversal sequences blocked with absolute path bypass** Переховим во вкладку одного из товаров, перехватываем пакет и изменяем заголовок так, чтобы запрос выводил нам содержимое файла по указанному пути ![](https://i.imgur.com/cMqR256.png) Прописываем /etc/passwd проверяем результат в http истории ![](https://i.imgur.com/gW35jbn.png) Прогресс --- ![](https://i.imgur.com/cTwVJhS.png) ![](https://i.imgur.com/szwBvCD.png)