# WEB_Basic-Фадеев_Александр-Практика-3
## SQL-injection уязвимости
### SQL-injection второго порядка

> в username пишем administrator закрываем одинарную скобку и ставим однострочный комментарий


---
### получение скрытых данных



> в СУБД отправляется запроc, под условия которого попадают все продукты(т.к. 1=1) и коментируем всё что следует после нашего запроса(-*-*)

---
### SQL-инъекция UNION-атака, извлечение данных из других таблиц

> узнаем количество полей в таблице


>объединим таблицы
>

> находим логин и пароль

авторизируемся

---
### Атака SQL-инъекцией, запрос типа и версии базы данных на MySQL и Microsoft.

В Burp меняем наш запрос. Т.к. предполагается работа с mysql необходимо учитывать особенности этой субд. 

> узнаем количество полей

> узнаем версию


> информация о версии mysql
>

`особенности работы с разными субд: https://portswigger.net/web-security/sql-injection/cheat-sheet`
## XSS уязвимости:
### Сохраненный XSS в контексте HTML без каких-либо кодировок

> оставляем комментарий

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

### DOM XSS in document.write sink using source location.search

попробуем найти все упоминания "FGHUUGV" в коде страницы. Найдем тег для отображения граф фотографий и атрибут содержащий "FGHUUGV". Его выдает скрипт(написанный над тегом)

пробуем изменить поиск и вводим след.

после загрузки страницы выполняется скрипт и открывает всплывающее окно


### Reflected XSS into a JavaScript string with angle brackets HTML encoded

жмем поиск



### Reflected DOM XSS
- вводим любой запрос в поиск
- ищем отправленный запрос и смотрим куда он отпр.

во вкладке target->sitemap(если в Burp) или ctrl+shift+c и раздел sources(если окно браузера)
переходим туда


в поисковой строке пишем след выражение
```
\"-alert(1)}//
```


## CSRF:
### CSRF vulnerability with no defenses
заходим в аккаунт

> меняем почту, после переходим burp и редактируем наш запрос оставляя самое главное

> генерим CSRF PoC

> на сайте лабы жмем "go to exploit server" и стави в поле body

сменим еще раз почту
test4@example.com
жмем "store" и "View exploit"

"submit"

добавим в body след скрипт

кнопка submit нажмется автоматически при открытии страницы
жмем "Deliver exploit to victim"

### CSRF where token validation depends on request method

> включаем intercept и меняем почту
>
> 
> получаем пост запрос
> переходим в repeater и меняем метод запроса
> 
> вероятно проверка на уникальное значение имеется только на запросах пост
> &csrf=... можно удалить
> генерим CSRF PoC


передаем эксполит жертве


## SSRF:
### Basic SSRF against the local server
Открываем страницу продукта и отправляем запрос.

В Burp сохраняем в repeater

нас интересует stockApi
> попробуе получить доступ к самому прилдожению
> (ctrl+shfit+u - decode)
>
> 
проверим запущено ли приложение на локальном хостинге

ответ положительный
если нажмем на render, отобразится страница.

можем заметить новую панель администратора
вероятно между клиентом на котором запущено прил и сервером установлено доверительын отношения, т.к. предполагается что клиент уже прошел авторизацию.
получим доступ к интерфейсу администратора

> меняем запрос
> 

в коде с помощью search находим все упоминания "delete"

меняем stockApi


нас перенаправляют на другую страницу

отказ в доступе
вернемся к интерфейсу администратора


пользователь был удален

### SSRF with filter bypass via open redirection vulnerability
в конце страницы можно найти новую функцию для просмотра след. продукта

сохраним пост запросы и check stock и next product
при попытки зайти на localhost след ошибка

посмотрим вторую функцию. Она перенаправляет нас на следующий продукт списка.

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

и кодируем адрес


в рендере увидим следующее

дальше действ не отл от пред задания




## RCE:
### OS command injection, simple case
переходим на страницу продукта и жмем check stock


добавим команду whoami и добавим # для комментирования оставшейся троки
и кодируем


> видим след ответ
> 

## Path traversal:
### File path traversal, simple case
включаем intercept и жмем f5 на странице лаб.

выбираем get запрос на фотографию

меняем "61.jpg" на абсолютный путь до passwd
/etc/passwd

> попробуем ввести относительный
>
> 
> в итоге получаем содержимое файла passwd
> 

### File path traversal, traversal sequences blocked with absolute path bypass

введем абсолютный путь

результат

