# WEB_Basic-Фадеев_Александр-Практика-3 ## SQL-injection уязвимости ### SQL-injection второго порядка ![](https://i.imgur.com/e9Hnvzf.png) > в username пишем administrator закрываем одинарную скобку и ставим однострочный комментарий ![](https://i.imgur.com/0Qdvzk2.png) ![](https://i.imgur.com/9GjARml.png) --- ### получение скрытых данных ![](https://i.imgur.com/aS1iIEs.png) ![](https://i.imgur.com/XvKXYhx.png) ![](https://i.imgur.com/I2PT1oa.png) > в СУБД отправляется запроc, под условия которого попадают все продукты(т.к. 1=1) и коментируем всё что следует после нашего запроса(-*-*) ![](https://i.imgur.com/QhBhqmD.png) --- ### SQL-инъекция UNION-атака, извлечение данных из других таблиц ![](https://i.imgur.com/nL4u4hF.png) > узнаем количество полей в таблице ![](https://i.imgur.com/dmn9Egn.png) ![](https://i.imgur.com/c4yZyEA.png) >объединим таблицы > ![](https://i.imgur.com/LiDA4Cq.png) > находим логин и пароль ![](https://i.imgur.com/C7NJMTX.png) авторизируемся ![](https://i.imgur.com/EWsl0NF.png) --- ### Атака SQL-инъекцией, запрос типа и версии базы данных на MySQL и Microsoft. ![](https://i.imgur.com/LSDV6sq.png) В Burp меняем наш запрос. Т.к. предполагается работа с mysql необходимо учитывать особенности этой субд. ![](https://i.imgur.com/9IcRXZo.png) ![](https://i.imgur.com/8iYOsOk.png) > узнаем количество полей ![](https://i.imgur.com/nlLRD3b.png) > узнаем версию ![](https://i.imgur.com/BCeIGYQ.png) ![](https://i.imgur.com/aLlTgdu.png) > информация о версии mysql > ![](https://i.imgur.com/roJOtj5.png) `особенности работы с разными субд: https://portswigger.net/web-security/sql-injection/cheat-sheet` ## XSS уязвимости: ### Сохраненный XSS в контексте HTML без каких-либо кодировок ![](https://i.imgur.com/2cheJeA.png) > оставляем комментарий ![](https://i.imgur.com/oojchXJ.png) теперь при загрузке этой страницы будет появляться уведомление ![](https://i.imgur.com/xJFV1k3.png) ### DOM XSS in document.write sink using source location.search ![](https://i.imgur.com/ApaHAmV.png) попробуем найти все упоминания "FGHUUGV" в коде страницы. Найдем тег для отображения граф фотографий и атрибут содержащий "FGHUUGV". Его выдает скрипт(написанный над тегом) ![](https://i.imgur.com/w575cmn.png) пробуем изменить поиск и вводим след. ![](https://i.imgur.com/MB4ROCZ.png) после загрузки страницы выполняется скрипт и открывает всплывающее окно ![](https://i.imgur.com/iotSy68.png) ![](https://i.imgur.com/fVWj0mM.png) ### Reflected XSS into a JavaScript string with angle brackets HTML encoded ![](https://i.imgur.com/LQqjUzF.png) жмем поиск ![](https://i.imgur.com/80SFNGI.png) ![](https://i.imgur.com/cwM4CFJ.png) ![](https://i.imgur.com/G2JnCBD.png) ### Reflected DOM XSS - вводим любой запрос в поиск - ищем отправленный запрос и смотрим куда он отпр. ![](https://i.imgur.com/rWZGbVP.png) во вкладке target->sitemap(если в Burp) или ctrl+shift+c и раздел sources(если окно браузера) переходим туда ![](https://i.imgur.com/vFyMwnS.png) ![](https://i.imgur.com/G1t8iCm.png) в поисковой строке пишем след выражение ``` \"-alert(1)}// ``` ![](https://i.imgur.com/041FWhT.png) ![](https://i.imgur.com/iX0XzEX.png) ## CSRF: ### CSRF vulnerability with no defenses заходим в аккаунт ![](https://i.imgur.com/PWtD93R.png) > меняем почту, после переходим burp и редактируем наш запрос оставляя самое главное ![](https://i.imgur.com/b0SZJ4M.png) > генерим CSRF PoC ![](https://i.imgur.com/uaXZR5m.png) > на сайте лабы жмем "go to exploit server" и стави в поле body ![](https://i.imgur.com/7DgmEpc.png) сменим еще раз почту test4@example.com жмем "store" и "View exploit" ![](https://i.imgur.com/IQQCnW1.png) "submit" ![](https://i.imgur.com/MBXJ4nD.png) добавим в body след скрипт ![](https://i.imgur.com/7qU2Eqc.png) кнопка submit нажмется автоматически при открытии страницы жмем "Deliver exploit to victim" ![](https://i.imgur.com/TEFsWjs.png) ### CSRF where token validation depends on request method ![](https://i.imgur.com/4TsFvyy.png) > включаем intercept и меняем почту > > ![](https://i.imgur.com/cTvA8OA.png) > получаем пост запрос > переходим в repeater и меняем метод запроса > ![](https://i.imgur.com/TZ7YE3x.png) > вероятно проверка на уникальное значение имеется только на запросах пост > &csrf=... можно удалить > генерим CSRF PoC ![](https://i.imgur.com/mhOUwT9.png) ![](https://i.imgur.com/9HvfYH7.png) передаем эксполит жертве ![](https://i.imgur.com/aHCJkb9.png) ![](https://i.imgur.com/KW72cc0.png) ## SSRF: ### Basic SSRF against the local server Открываем страницу продукта и отправляем запрос. ![](https://i.imgur.com/kMTgLFD.png) В Burp сохраняем в repeater ![](https://i.imgur.com/Gv55Gug.png) нас интересует stockApi > попробуе получить доступ к самому прилдожению > (ctrl+shfit+u - decode) > > ![](https://i.imgur.com/rtyEThj.png) проверим запущено ли приложение на локальном хостинге ![](https://i.imgur.com/spbxDX0.png) ответ положительный если нажмем на render, отобразится страница. ![](https://i.imgur.com/u3FbjsY.png) можем заметить новую панель администратора вероятно между клиентом на котором запущено прил и сервером установлено доверительын отношения, т.к. предполагается что клиент уже прошел авторизацию. получим доступ к интерфейсу администратора ![](https://i.imgur.com/1VM8lMk.png) > меняем запрос > ![](https://i.imgur.com/Ht0t1xO.png) ![](https://i.imgur.com/Fa4sqwe.png) в коде с помощью search находим все упоминания "delete" ![](https://i.imgur.com/SIRRIx0.png) меняем stockApi ![](https://i.imgur.com/aWLPfV7.png) ![](https://i.imgur.com/HfgRxq5.png) нас перенаправляют на другую страницу ![](https://i.imgur.com/ZKRplrH.png) отказ в доступе вернемся к интерфейсу администратора ![](https://i.imgur.com/nOCwQXr.png) ![](https://i.imgur.com/ZNMz1I1.png) пользователь был удален ![](https://i.imgur.com/rZbyjc8.png) ### SSRF with filter bypass via open redirection vulnerability в конце страницы можно найти новую функцию для просмотра след. продукта ![](https://i.imgur.com/Id6K3Ik.png) сохраним пост запросы и check stock и next product при попытки зайти на localhost след ошибка ![](https://i.imgur.com/DpobovS.png) посмотрим вторую функцию. Она перенаправляет нас на следующий продукт списка. ![](https://i.imgur.com/i4MAymj.png) возьмем этот путь и поставим его на место другого в параметре stockApi. в результате ошибка о непрвильности пути появляться не будет, т.к. это допустимый путь в приложении и допишем адрес который довался в начале лаб работы ![](https://i.imgur.com/uJ1KnIB.png) и кодируем адрес ![](https://i.imgur.com/ZtX1AQY.png) ![](https://i.imgur.com/c1UP1op.png) в рендере увидим следующее ![](https://i.imgur.com/Q3CeR2y.png) дальше действ не отл от пред задания ![](https://i.imgur.com/LCFezV0.png) ![](https://i.imgur.com/ldImdpq.png) ![](https://i.imgur.com/CMZo74Y.png) ![](https://i.imgur.com/ZGnsvkc.png) ## RCE: ### OS command injection, simple case переходим на страницу продукта и жмем check stock ![](https://i.imgur.com/52ejPbt.png) ![](https://i.imgur.com/SO7TOTy.png) добавим команду whoami и добавим # для комментирования оставшейся троки и кодируем ![](https://i.imgur.com/NaF36Vd.png) ![](https://i.imgur.com/dN0bcYF.png) > видим след ответ > ![](https://i.imgur.com/yEoXgPr.png) ![](https://i.imgur.com/ZetK8MZ.png) ## Path traversal: ### File path traversal, simple case включаем intercept и жмем f5 на странице лаб. ![](https://i.imgur.com/qT1gkSe.png) выбираем get запрос на фотографию ![](https://i.imgur.com/bS0exFV.png) меняем "61.jpg" на абсолютный путь до passwd /etc/passwd ![](https://i.imgur.com/CWAZPrJ.png) > попробуем ввести относительный > > ![](https://i.imgur.com/gIEr4of.png) > в итоге получаем содержимое файла passwd > ![](https://i.imgur.com/hTBBxjJ.png) ![](https://i.imgur.com/M5ym8Ld.png) ### File path traversal, traversal sequences blocked with absolute path bypass ![](https://i.imgur.com/mim8V6a.png) введем абсолютный путь ![](https://i.imgur.com/bXuWNvK.png) результат ![](https://i.imgur.com/COB9Ezb.png) ![](https://i.imgur.com/SMuvtKZ.png)