Занятие 3. Основные атаки и паттерны 1. SQL-injection уязвимости SQL injection vulnerability in WHERE clause allowing retrieval of hidden data *Воспользовался Burp Suite для перехвата и изменения запроса, который устанавливает фильтр категории продукта. Затем изменил category параметр, присвоив ему значение'+OR+1=1--. Отправил запрос и убедился, что ответ теперь содержит дополнительные элементы* ![](https://i.imgur.com/rqFLI8v.jpg) ![](https://i.imgur.com/BdAVbp5.jpg) SQL injection vulnerability allowing login bypass *Воспользовался Burp Suite для перехвата и изменения запроса на вход, и изменил username параметр, присвоив ему значение administrator'--* ![](https://i.imgur.com/y4zN4GY.jpg) ![](https://i.imgur.com/7RQNksA.jpg) SQL injection UNION attack, retrieving data from other tables *Использовал следующую полезную нагрузку для получения содержимого users таблицы: '+UNION+SELECT+username,+password+FROM+users-- в поисковом запросе страницы* ![](https://i.imgur.com/wdTrwCc.jpg) ![](https://i.imgur.com/pFymfyC.jpg) SQL injection attack, querying the database type and version on MySQL and Microsoft *Воспользовался Burp Suite для перехвата и изменения запроса, который задает фильтр категории продукта. Использовал следующую полезную нагрузку для отображения версии базы данных: '+UNION+SELECT+@@version,+NULL#* ![](https://i.imgur.com/TnbVuhM.jpg) ![](https://i.imgur.com/vLtIuAp.jpg) 2. XSS уязвимости Stored XSS into HTML context with nothing encoded *Ввел следующее сообщение в поле для поиска <script>alert(1)</script>, которое вызвало функцию alert* ![](https://i.imgur.com/8Rc0Rzg.jpg) ![](https://i.imgur.com/YSREuag.jpg) DOM XSS in document.write sink using source location.search *Сперва ввел случайную буквенно-цифровую строку в поле поиска. Затем убедился, что строка помещена внутрь атрибута img src. Вырвался из атрибута, выполнив запрос в поиске* ![](https://i.imgur.com/pFv0xuI.jpg) ![](https://i.imgur.com/Ut1gGQ4.jpg) Reflected XSS into a JavaScript string with angle brackets HTML encoded *Отправил случайную буквенно-цифровую строку в поле поиска, затем воспользовался Burp Suite, чтобы перехватить поисковый запрос и отправить его в Burp Repeater. Обратил внимание, что случайная строка была отражена внутри строки JavaScript. Заменил ввод следующей полезной нагрузкой, чтобы вырваться из строки JavaScript и внедрить предупреждение: '-alert(1)-'. Убедился, что метод работает, щелкнув правой кнопкой мыши, выбрав «Копировать URL-адрес» и вставив URL-адрес в браузер* ![](https://i.imgur.com/PQtyhjE.jpg) ![](https://i.imgur.com/LOFDsxO.jpg) Reflected DOM XSS *В Burp Suite перешел к инструменту Proxy и убедился, что функция Intercept включена. Вернувшись в лабораторию, перешел на целевой веб-сайт и с помощью панели поиска нашел случайную тестовую строку. Вернулся к инструменту Proxy в Burp Suite и переслал запрос. На вкладке Intercept обратил внимание, что строка отражается в ответе JSON с именем search-results. На карте сайта открыл searchResults.js файл и обратил внимание, что ответ JSON используется с eval() вызовом функции. Поэкспериментировав с различными строками поиска, определил, что ответ JSON выходит за рамки кавычек, однако обратная косая черта не экранируется. Чтобы решить эту лабораторную работу, ввел следующий поисковый запрос: \"-alert(1)}//. Поскольку мы ввели обратную косую черту, а сайт не экранирует их, когда ответ JSON пытается избежать открывающего символа двойных кавычек, он добавляет вторую обратную косую черту. В результате получается двойная обратная косая черта, которая эффективно отменяет экранирование. Это означает, что двойные кавычки обрабатываются без экранирования, что закрывает строку, которая должна содержать поисковый запрос* ![](https://i.imgur.com/boc2usw.jpg) ![](https://i.imgur.com/mR0q8nE.jpg) 3. CSRF CSRF vulnerability with no defenses *Воспользовался HTML-шаблоном и заполнил метод запроса, URL-адрес и параметры тела. Перешел на сервер эксплойтов, вставил свой HTML-код эксплойта в раздел «Body» и нажал «Сохранить». Нажал «Доставить жертве», чтобы решить лабораторную* ![](https://i.imgur.com/vNTYWKf.jpg) ![](https://i.imgur.com/pgcd73S.jpg) CSRF where token validation depends on request method *Воспользовался HTML-шаблоном и заполнил метод запроса, URL-адрес и параметры тела. Перешел на сервер эксплойтов, вставил свой HTML-код эксплойта в раздел «Body» и нажал «Сохранить». Нажал «Доставить жертве», чтобы решить лабораторную* ![](https://i.imgur.com/k53rGkj.jpg) ![](https://i.imgur.com/H9TCsT7.jpg) 4. RCE OS command injection, simple case *Воспользовался Burp Suite для перехвата и изменения запроса на проверку уровня запасов. Изменил storeID параметр, присвоив ему значение 1|whoami* ![](https://i.imgur.com/3IMEVV1.jpg) ![](https://i.imgur.com/kFCTTJK.jpg) 5. Path traversal File path traversal, simple case *Воспользовался Burp Suite для перехвата и изменения запроса на получение изображения продукта. Изменил filename параметр, присвоив ему значение: ../../../etc/passwd* ![](https://i.imgur.com/UOGijmU.jpg) ![](https://i.imgur.com/DXLL4Wl.jpg) File path traversal, traversal sequences blocked with absolute path bypass *Воспользовался Burp Suite для перехвата и изменения запроса на получение изображения продукта. Изменил filename параметр, присвоив ему значение /etc/passwd* ![](https://i.imgur.com/TU5Jbog.jpg) ![](https://i.imgur.com/KJFXfDf.jpg) 6. SSRF Basic SSRF against the local server *Просмотрел /admin и обратил внимание, не могу напрямую получить доступ к странице администратора. Перехватил запрос в Burp Suite и отправил его в Burp Repeater. Изменил URL-адрес в stockApi параметре на http://localhost/admin, для отображения интерфейса администрирования* ![](https://i.imgur.com/c7S1jcU.jpg) *Удалил целевого пользователя http://localhost/admin/delete?username=carlos. Отправил этот URL в stockApi параметр, чтобы провести атаку* ![](https://i.imgur.com/CqgDe1J.jpg) ![](https://i.imgur.com/upNRoM0.jpg) 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* ![](https://i.imgur.com/muGnVUi.jpg) ![](https://i.imgur.com/FcjYYc3.jpg)