Занятие 3. Основные атаки и паттерны
1. SQL-injection уязвимости
SQL injection vulnerability in WHERE clause allowing retrieval of hidden data
*Воспользовался Burp Suite для перехвата и изменения запроса, который устанавливает фильтр категории продукта. Затем изменил category параметр, присвоив ему значение'+OR+1=1--. Отправил запрос и убедился, что ответ теперь содержит дополнительные элементы*


SQL injection vulnerability allowing login bypass
*Воспользовался Burp Suite для перехвата и изменения запроса на вход, и изменил username параметр, присвоив ему значение administrator'--*


SQL injection UNION attack, retrieving data from other tables
*Использовал следующую полезную нагрузку для получения содержимого users таблицы: '+UNION+SELECT+username,+password+FROM+users-- в поисковом запросе страницы*


SQL injection attack, querying the database type and version on MySQL and Microsoft
*Воспользовался Burp Suite для перехвата и изменения запроса, который задает фильтр категории продукта. Использовал следующую полезную нагрузку для отображения версии базы данных: '+UNION+SELECT+@@version,+NULL#*


2. XSS уязвимости
Stored XSS into HTML context with nothing encoded
*Ввел следующее сообщение в поле для поиска <script>alert(1)</script>, которое вызвало функцию alert*


DOM XSS in document.write sink using source location.search
*Сперва ввел случайную буквенно-цифровую строку в поле поиска. Затем убедился, что строка помещена внутрь атрибута img src. Вырвался из атрибута, выполнив запрос в поиске*


Reflected XSS into a JavaScript string with angle brackets HTML encoded
*Отправил случайную буквенно-цифровую строку в поле поиска, затем воспользовался Burp Suite, чтобы перехватить поисковый запрос и отправить его в Burp Repeater. Обратил внимание, что случайная строка была отражена внутри строки JavaScript. Заменил ввод следующей полезной нагрузкой, чтобы вырваться из строки JavaScript и внедрить предупреждение: '-alert(1)-'. Убедился, что метод работает, щелкнув правой кнопкой мыши, выбрав «Копировать URL-адрес» и вставив URL-адрес в браузер*


Reflected DOM XSS
*В Burp Suite перешел к инструменту Proxy и убедился, что функция Intercept включена. Вернувшись в лабораторию, перешел на целевой веб-сайт и с помощью панели поиска нашел случайную тестовую строку. Вернулся к инструменту Proxy в Burp Suite и переслал запрос. На вкладке Intercept обратил внимание, что строка отражается в ответе JSON с именем search-results. На карте сайта открыл searchResults.js файл и обратил внимание, что ответ JSON используется с eval() вызовом функции. Поэкспериментировав с различными строками поиска, определил, что ответ JSON выходит за рамки кавычек, однако обратная косая черта не экранируется. Чтобы решить эту лабораторную работу, ввел следующий поисковый запрос: \"-alert(1)}//. Поскольку мы ввели обратную косую черту, а сайт не экранирует их, когда ответ JSON пытается избежать открывающего символа двойных кавычек, он добавляет вторую обратную косую черту. В результате получается двойная обратная косая черта, которая эффективно отменяет экранирование. Это означает, что двойные кавычки обрабатываются без экранирования, что закрывает строку, которая должна содержать поисковый запрос*


3. CSRF
CSRF vulnerability with no defenses
*Воспользовался HTML-шаблоном и заполнил метод запроса, URL-адрес и параметры тела. Перешел на сервер эксплойтов, вставил свой HTML-код эксплойта в раздел «Body» и нажал «Сохранить». Нажал «Доставить жертве», чтобы решить лабораторную*


CSRF where token validation depends on request method
*Воспользовался HTML-шаблоном и заполнил метод запроса, URL-адрес и параметры тела. Перешел на сервер эксплойтов, вставил свой HTML-код эксплойта в раздел «Body» и нажал «Сохранить». Нажал «Доставить жертве», чтобы решить лабораторную*


4. RCE
OS command injection, simple case
*Воспользовался Burp Suite для перехвата и изменения запроса на проверку уровня запасов. Изменил storeID параметр, присвоив ему значение 1|whoami*


5. Path traversal
File path traversal, simple case
*Воспользовался Burp Suite для перехвата и изменения запроса на получение изображения продукта. Изменил filename параметр, присвоив ему значение: ../../../etc/passwd*


File path traversal, traversal sequences blocked with absolute path bypass
*Воспользовался Burp Suite для перехвата и изменения запроса на получение изображения продукта. Изменил filename параметр, присвоив ему значение /etc/passwd*


6. SSRF
Basic SSRF against the local server
*Просмотрел /admin и обратил внимание, не могу напрямую получить доступ к странице администратора. Перехватил запрос в Burp Suite и отправил его в Burp Repeater. Изменил URL-адрес в stockApi параметре на http://localhost/admin, для отображения интерфейса администрирования*

*Удалил целевого пользователя http://localhost/admin/delete?username=carlos. Отправил этот URL в stockApi параметр, чтобы провести атаку*


SSRF with filter bypass via open redirection vulnerability
*Перехватил запрос в Burp Suite и отправил его в Burp Repeater. Создал URL-адрес, который использует открытую уязвимость перенаправления и перенаправляет на интерфейс администратора, чтобы удалить пользователся и ввел его в stockApi параметр проверки запасов: /product/nextProduct?path=http://192.168.0.12:8080/admin/delete?username=carlos*

