---
# System prepended metadata

title: №3 Основные атаки и паттерны

---

№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)
