<h1>WEB basic. Основные атаки и паттерны </h1> **SQL-injection уязвимости:** - [https://portswigger.net/web-security/sql-injection/lab-login-bypass](https://portswigger.net/web-security/sql-injection/lab-login-bypass) Вводим в поле администратор данный логин и получаем доступ к УЗ админа ![](https://i.imgur.com/zyQBy2J.png) ![](https://i.imgur.com/gQg8zr9.png) - [https://portswigger.net/web-security/sql-injection/lab-retrieve-hidden-data](https://portswigger.net/web-security/sql-injection/lab-retrieve-hidden-data) Изменим поле category на '+OR+1=1-- ![](https://i.imgur.com/9yizzQN.png) Результат ![](https://i.imgur.com/RnjoJ7D.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) Добавим в URL '+UNION+SELECT+username,+password+FROM+users-- и получим 'доступ' к данным пользователей ![](https://i.imgur.com/HNl2qRL.png) Зайдем в УЗ админа ![](https://i.imgur.com/wm3FtDw.png) ![](https://i.imgur.com/MIXu0HA.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) Изменим поле Gifts на '+UNION+SELECT+@@version,+NULL# ![](https://i.imgur.com/FCtFD9G.png) В результате видим что sql инъекция прошла успешно **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/rXP03KF.png) Результат ![](https://i.imgur.com/xKGPpxs.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/PxAMSqf.png) ![](https://i.imgur.com/49faWA2.png) Результат ![](https://i.imgur.com/cH8m198.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) Находим ввод переменных с уязвимостью и вводим в строку поиска '-alert(1)-' ![](https://i.imgur.com/Eenc6qd.png) Результат ![](https://i.imgur.com/vREhfyI.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/eFW9M0G.png) ![](https://i.imgur.com/j1MbmwY.png) Меняем ответ для вызова функции и видим выполнение алерта ![](https://i.imgur.com/ZScdFJc.png) **CSRF:** - [https://portswigger.net/web-security/csrf/lab-no-defenses](https://portswigger.net/web-security/csrf/lab-no-defenses) Логинимся ![](https://i.imgur.com/KJUMFUD.png) добавляем ответ в repeater и с него забираем url ![](https://i.imgur.com/gE7K5Lq.png) Заполняем exploit и нажимаем deliver exploit to victim ![](https://i.imgur.com/fKO4GgR.png) Меняем email ![](https://i.imgur.com/xZgWSmA.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/q5SJ4Dt.png) Отправляем ответ в repeater и достаем с него url ![](https://i.imgur.com/woXe3Uq.png) перейдем в change request method ![](https://i.imgur.com/FLbSmov.png) Зайдем в редактирование эксплойта и нажимаем deliver exploit to victim ![](https://i.imgur.com/6lMAciW.png) Видим измененный email ![](https://i.imgur.com/de3V9Tl.png) **SSRF:** - [https://portswigger.net/web-security/ssrf/lab-basic-ssrf-against-localhost](https://portswigger.net/web-security/ssrf/lab-basic-ssrf-against-localhost) Меняем поле check-stock зпускаемперехват и меняем поле stockApi ![](https://i.imgur.com/l81KAZv.png) отправляем запрос и видим пользователей ![](https://i.imgur.com/7kWSEPS.png) опять запускаем перехват и добавляем команду для удаления пользователя ![](https://i.imgur.com/Ax9V7WZ.png) отправляем запрос и видим что пользователь удален ![](https://i.imgur.com/PnRzX2y.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) Поковыряем check stock ![](https://i.imgur.com/aXWFpYs.png) Поковыряем next-product и найдем там path ![](https://i.imgur.com/weSnyq6.png) изменим значение на переход в УЗ админа и отправим запрос ![](https://i.imgur.com/CzULEPM.png) увидим пользователей ![](https://i.imgur.com/0OOYADL.png) Добавим команду удаления пользователей ![](https://i.imgur.com/TxRBVuQ.png) видим удаление пользователя ![](https://i.imgur.com/c6Aamdp.png) **RCE:** - [https://portswigger.net/web-security/os-command-injection/lab-simple](https://portswigger.net/web-security/os-command-injection/lab-simple) Запустим перехват запроса и увидим параметр storeID ![](https://i.imgur.com/5d77nq8.png) Изменим его значение на 1|whoami ![](https://i.imgur.com/AgBXcse.png) Результатом вывода будет пользователь под которым мы залогинены ![](https://i.imgur.com/nue4pCP.png) **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/TbaQvRA.png) Изменим значение filename на путь к файлу ../../../etc/passwd ![](https://i.imgur.com/yZTkQqA.png) И увидим в GET запросе содерджимое файла passwd ![](https://i.imgur.com/GvknsfV.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/aPigfee.png) изменим значение filename на абсолютный путь к файлу /etc/passwd ![](https://i.imgur.com/eIhezAz.png) В GET запросе увидим содержимое файла passwd ![](https://i.imgur.com/79YTrF7.png) Dashboard ![](https://i.imgur.com/CXwCZiZ.png)