# **Практическая работа №3 Web Basic** ## **Цель работы:** - Изучить основные атаки на WEB ## Задание Практической работы: На стенде по адресу [https://portswigger.net/web-security](https://portswigger.net/web-security) разобрать следующие задания: **SQL-injection уязвимости:** - [https://portswigger.net/web-security/sql-injection/lab-login-bypass](https://portswigger.net/web-security/sql-injection/lab-login-bypass) Переходим на страницу авторизации. Вводим Username `administrator` и любой пароль, после этого отправляем запрос `Forward` ![](https://i.imgur.com/gd9eDbc.png) Изменяем запрос, добавляя `'--` ![](https://i.imgur.com/7qRvweX.png) Бум!!! Мы авторизовались под администратором ![](https://i.imgur.com/niSoc8F.png) - [https://portswigger.net/web-security/sql-injection/lab-retrieve-hidden-data](https://portswigger.net/web-security/sql-injection/lab-retrieve-hidden-data) ![](https://i.imgur.com/Ds871G8.png) Выбираем любую категорию и меняем в запросе значение `category` ![](https://i.imgur.com/EhjIdrU.png) Мы получили все сведения обо всех продуктах в любой категории, как выпущенных, так и не выпущенных. ![](https://i.imgur.com/nKNZRtR.png) - [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) Изменяем значение `category` ![](https://i.imgur.com/v4q60kX.png) Получаем users таблицу ![](https://i.imgur.com/SVm9IAt.png) Пробуем авторизоваться под `administrator` ![](https://i.imgur.com/8UCXPny.png) Мы авторизовались под администратором ![](https://i.imgur.com/heBCEdk.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) Изменяем значение поля `category` ![](https://i.imgur.com/mhEo1bE.png) Получаем версию БД ![](https://i.imgur.com/6dXQ9ka.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) ![](https://i.imgur.com/dKGzRzq.png) Захдим на любой пост и в поле для комментрариев вводим `<script>alert(1)</script>` ![](https://i.imgur.com/T9rFGsY.png) Опубликовываем комментарий ![](https://i.imgur.com/sFxVT9E.png) Возвращаемся в блог и видим, что наш скрипт выполнился ![](https://i.imgur.com/AopSn2r.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) Вводим случайную буквенно-цифровую строку в поле поиска ![](https://i.imgur.com/IUcEqvC.png) ![](https://i.imgur.com/6f4hPfT.png) Нажимаем пкм и заходим в просмотр элемента Видим, что строка была помещена внутри `img src` атрибута ![](https://i.imgur.com/PwQY4gm.png) Заново выполняем поиск, введя в поле `"><svg onload=alert(1)>` ![](https://i.imgur.com/61vbSK2.png) ![](https://i.imgur.com/yGB0Mif.png) ![](https://i.imgur.com/xeWIIVW.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) Отправляем случайную буквенно-цифровую строку в поле поиска ![](https://i.imgur.com/Jgk8u1s.png) ![](https://i.imgur.com/NupUjOt.png) Заменяем ввод следующей командой `'-alert(1)-'` ![](https://i.imgur.com/fhm2vdC.png) Видим, что при перезагрузке страницы вылезает предупреждение ![](https://i.imgur.com/azFxUQz.png) ![](https://i.imgur.com/aHrfw26.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) ![](https://i.imgur.com/ATCGCx3.png) Выполняем поисковый запрос, введя в строку поиска `\"-alert(1)}//` ![](https://i.imgur.com/zoDkZW5.png) ![](https://i.imgur.com/ReZBZaP.png) ![](https://i.imgur.com/wj2TYFG.png) ![](https://i.imgur.com/gzU4wIo.png) ![](https://i.imgur.com/jGejmDy.png) **CSRF:** - [https://portswigger.net/web-security/csrf/lab-no-defenses](https://portswigger.net/web-security/csrf/lab-no-defenses) ![](https://i.imgur.com/klZrvoh.png) Входим в учётную запись под учётными данными `wiener:peter` ![](https://i.imgur.com/dHBuWIy.png) Добавляем электронную почту ![](https://i.imgur.com/QpTGFPG.png) Переходим во вкладку `Go to exploit server` ![](https://i.imgur.com/csxUoHE.png) В поле `Body` вписываем следующий html шаблон ![](https://i.imgur.com/XCuTr82.png) Отправляем его ![](https://i.imgur.com/dqwQTWA.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) ![](https://i.imgur.com/rgZmThC.jpg) Входим в учётную запись под учётными данными `wiener:peter` ![](https://i.imgur.com/p11ND2n.png) Добавляем новую почту ![](https://i.imgur.com/FiNLejD.png) ![](https://i.imgur.com/ckT5nnK.png) Отправляем запрос в Burp repeater ![](https://i.imgur.com/NwDzKJk.png) ![](https://i.imgur.com/gs7kozB.png) Получаем ошибку ![](https://i.imgur.com/q0RbPjY.png) меняем POST на GET ![](https://i.imgur.com/kgEPwHp.png) пишем эксплойт ![](https://i.imgur.com/VwS7L5t.png) отправляем ![](https://i.imgur.com/tbJwxzh.png) **SSRF:** - [https://portswigger.net/web-security/ssrf/lab-basic-ssrf-against-localhost](https://portswigger.net/web-security/ssrf/lab-basic-ssrf-against-localhost) ![](https://i.imgur.com/fsgT3sP.jpg) ![](https://i.imgur.com/5ivUFHt.jpg) Посещаем любой продукт и нажимаем`Check stock` ![](https://i.imgur.com/7hZ4ncS.png) Изменяем в запросе параметр `stokApi` ![](https://i.imgur.com/ntKmdJJ.jpg) Отображается интерфейс администрирования ![](https://i.imgur.com/qqeYgGA.png) Смотрим html код и определяем url для удаления пользователя ![](https://i.imgur.com/NwMAUPO.png) Затем снова отправляем запрос и меняем значение параметра `stockApi` ![](https://i.imgur.com/pyuYDtI.png) ![](https://i.imgur.com/BFFE3FK.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) ![](https://i.imgur.com/DDMYQE6.png) Отправляем запрос и меняем значение параметра `stockApi` ![](https://i.imgur.com/Cyy8Bob.jpg) Затем снова отправляем запрос и меняем значение параметра `stockApi` ![](https://i.imgur.com/jE4j07K.jpg) ![](https://i.imgur.com/VNiBZNW.png) **RCE:** - [https://portswigger.net/web-security/os-command-injection/lab-simple](https://portswigger.net/web-security/os-command-injection/lab-simple) ![](https://i.imgur.com/Oj9Yi5w.png) Переходим на любой товар и нажимаем `Check stock`, затем в Burp меняем в запросе параметр `storeID` ![](https://i.imgur.com/DqJEKha.jpg) Получаем имя пользователя ![](https://i.imgur.com/uwQakM0.png) ![](https://i.imgur.com/dWvvTHn.jpg) **Path traversal:** - [https://portswigger.net/web-security/file-path-traversal/lab-simple](https://portswigger.net/web-security/file-path-traversal/lab-simple) ![](https://i.imgur.com/nfHLYta.png) При отправке запросов, меняем значение параметра `filename` ![](https://i.imgur.com/lurPy8L.png) ![](https://i.imgur.com/LvVAnoh.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) ![](https://i.imgur.com/F6EhaTU.png) При отправке запросов, меняем значение параметра `filename` ![](https://i.imgur.com/8pAmMUE.png) ![](https://i.imgur.com/rvrbX5K.png) ## Dashboard ![](https://i.imgur.com/aJz023r.png)