Задание Практической работы:
----------------------------
общая статистика по выполненым работам

На стенде по адресу [](https://portswigger.net/web-security)[https://portswigger.net/web-security](https://portswigger.net/web-security) разобрать следующие задания:
**SQL-injection уязвимости:**
- 1
открываем burp suite, браузер для него и в браузере заходим в лабу

нажимаем мой аккаунт в браузере и в burp suite вкючаем режим перехвата

дальше в поле имени и пароля вводим administrator и любой пароль
в burp suite вводим '-- после administrator дабы закоментировать все что идет после него

после этого нажимаем forward и видим что в браузере нас просят обновить e-mail меняем e-mail и отжимаем перехват в burp

наш e-mail изменен и теперь у нас есть доступ в аккаунт администратора

- 2
заходим на уязвимый сайт

выбираем любую категорию

мы видим URL где в конце обозначается какаю категорию мы выбрали "lifestyle"
модифицируем запрос к приложению таким образом:

теперь мы видим как у нас отобразились новые позиции это и есть скрытые элементы которые мы увидили благодаря модификации запроса

все дело в том что при передачи запроса приложению оно считывает '+OR+1=1-- как логическое и поскольку 1=1 всегда верно, запрос вернет все элементы.
еще эту лабу можно выполнить другим способом, который выведет нам только все обьекты категории lifestyle путем дописывания в строку '-- после lifestyle это работает потому что для sql -- это комментирование и получается что все после lifestyle не выполняется, а именно после lifestyle у нас идет параметр, который мы не вводим но он есть контролирующий вывод только того что задуманно AND
released = 1 - именно это и комментируется
- 3
для начала давайте определим количество столбцов которые имет строковые значения для этого добавим в URL '+union+select+'null',null-- и будем каждую итерацию проверять на одну столбец больше

первая итерация

уже вторая итерация нам говорит что больше столбцов нет, поэтому давайте протестируем что будет есди написать теперь '+union+select+'test','test2'--

мы видим, что у нас на странице отобразилось test и test2
вообще мы итак знали что у нас есть таблица ее название а так же 2 столбца с названиями username и password но для общирности способа был расписан алгоритм для случая когда у нас нет информации о количестве столбцов в таблице.
теперь к основной части атаки
после категории введя '+union+select+username,password+from+users-- мы видем следующее

3 учетные записи и пароль к ним включая данные администратора
попробуем залогинитьтся с помощью данных из этого вывода
данные подходят, лаба решена

- 4 включим burp suite на перехват трафика и откроем страницу с любой категорией

давайте найдем количество столбцов в таблице для этого надо:
передать данные о запросе в повторитель, отключить перехват и перейти во вкладку repeater

модифицируем запрос добавив в конец '+order+by+1# и отправляем его

получаем ответ проверим есть ли там еще столбцы выполнив несколько итераций заменяя номер от 1 и так далее

ответ есть

при попытке произвести 3 итерацию у нас вылезла ошибка 500 Internal Server Error
это означает что всего есть 2 столбца
проверим являются ли они текстовыми еще раз модифицировав запрос 'UNION SELECT 'a', 'a'#

поля являются текстовыми
теперь давайте узнаем версию БДшки с помощью команды 'UNION+SELECT+%40%40version,+NULL%23
в конце мы приписываем +NULL%23 потоу что поля у нас 2 а вывести нам должно только одно после с версией

вот и версия

лаба решена
**XSS уязвимости:**
- 5
для того чтобы решить это лабу нужно вписать определенный текст в форму комментария и увидеть алерт
заходим на уязвимый сайт

переходим на любой пост и пишим в комментарий следущее <script>(1)</script>

результат

лаба сделана

- 6
проведем происк рандомного набора букв

через код элемента увидим, что наш происк помещен в img

теперь введем в строку поиск данный скрипт и выполним поиск


появляется алерт

лаба решена
- 7
входим в burp и открваем в браузере сайт с уязвимостью

включаем перехват и отправляем запрос в поисковой строке из букв и цифр

передаем перехваченый запрос репитеру и отрубаем перехват

с репитера отправляем запрос еще раз и видим в ответном html 2 совпадения по слову

одно в 1-ом заголовке и выводит на экран инфу о том что результатов поиска 0 а второй в джава скрипте который собственно и выполняет поиск
давайте в поиск введем следущее '-alert(1)-'

сдесь мы видим алерт потому что наш поиск выполнился как код

нажав ок мы видим что лаба была решена

- 8
открываем burp и лабу в браузере

для начала введем какой-нибудь текстовой запрос в поисковую строку

откроем http историю берпа и увидим наш GET запрос на поиск рандомных букв

видим что наш поиск находится в JSON формате
В burp перейдем на вкладку target и найдем наш запрос в папке js в файле searchResults.js

сдесь мы видим что наш поиск находится внутри функции eval
попробуем вывести алерт с помощью следующей строки которую мы впишем в поиск в браузере \\"-alert(1)}//

алерт выводится

лаба решена

**CSRF:**
- 9
для начала откроем burp и в браузере уязвимый сайт

с помощью данных которые нам дают в лабе залогинимся

после этого у нас попросят обновить почту тогда мы включаем в burp перехват и вводим тестовую почту

отправляем это на репитер и отжимаем перехват

теперь мы видим что почта изменина

т.к. я использую burp suite community edition я буду вручную писать html код и всталю его в сервер эксплойтов ссылка на который есть вверхней части страницы уязвимого сайта

так выглядит мой html код

url я буду брать из burp а метотр использвую POST


теперь надо заполнить переменные name и value первое это "email" пользователя а второе сам email

теперь нажимаем store чтобы сохранить

далее нажмем viev exploit чтобы убедиться что все работает

и наконец нажимаем Deliver exploit to victium

видим поздравление что лаба выполнена

email изменился

- 10
откроем burp suite и в браузере откроем сайт с уязвимостью

залогинимся на сайте

включим перехват и поменяем почту

отправляем запрос на репитер и отрубаем перехват

изминяем метод запроса с POST на GET

отправляем этот вопрос и нажимаем следовать переодресации и получаем ответ от сервера

мы видим, что у нас удалось поменять пароль через GET запрос

теперь попробуем убрать CSRF токен и отправить GET запрос на изменение почты еще раз

почту удалось изменить
т.к. я использую comunity edition я буду писать html код сам

мохроняем скрипт при помощи кнопки store

проверяем что все как надо через view exploit

и нажимаем Deliver exploit to victium

видим поздравление о том что лаба решена

почта изменена

**SSRF:**
- 11
открываем burp и сайт с уязвимостью

откроем на сайте любой продукт и включим перехват трафика

проверим наличие товара на складе где-нибудь в burp мы увидим следующую строку stockApi

давайте попробуем изменить запрос в этом месте

а теперь отправим и получим ответ от сервера

мы можем наблюдать панель администрирования
через код элемента найдем ссылки на удаление пользователя

генерируем еще один запрос повторно зарпосив количество товара и снова изменяем последнюю строку но уже иначе

форвардим запрос и получаем поздравление о завершении лабораторной

- 12
откроем burp и уязвимый сайт

выберем любой продукт, включим перехват трафика и создадим запрос количество товара

изменим запрос таким образом и попробуем его форварднуть

ничего не приходит

нажмем в нижнем правом углу next product и перехватим запрос

форвадним его и получим следущий продукт на экране

запросим количество этого продукта

изменим запрос следущим образом

мы видим панель администрирования

запромним путь

запросим опять количество продукта

изменим запрос следующим образом

видим подтверждение того что пользользователь удален

поздравдение с выполнением лабы

**RCE:**
- 13
для начала откроем burp и уязвимый сайт, включим прослушивание трафика и выберем любой продукт

отправим запрос на количество продукта

поменяем запрос следующим образом чтобы выполнить команду whoami

в ответ нам вместо количества сервер отправил юзера который сейчас используется

и подтверждение сделанной лабе

**Path traversal:**
- 14
откроем burp и уязвимый сайт

включим перехват и попробуем открыть какой-нибудь продукт

несколько раз форвардним запрос пока не увидим запрос GET на получение картинки
изменим этот запрос запросив файл который нам нужен

в это случае мы использовали ../../../etc/passwd чтобы вернуться в корневой каталог и попасть по пути /etc/passwd потому что когда мы пишим ../ то нас возврящает на одну директорию по файловому древу вверх
теперь перейдем во вкладку http history и найдем наш запрос

как видно мы в ответе получаем содержимое /etc/passwd
и так же получаем сообщение о выполненой лабе
- 15
как всегда сначала открываем уязвимый сайт и burp

включим перехват и откроем какой-нибудь продукт

отправляем запросы пока не появится запрос на получение картинки

на этот раз получим данные с помщью обсалютного пути

отправляем пока не закончатся все запросы и тут же видим сообщение о выполнении лабы

переходим в http history и находим наш запрос на картинку и в ответе видим /etc/passwd
