---
# System prepended metadata

title: WEB_Basic-Малышев_Роман-Практика-3

---

# WEB_Basic-Малышев_Роман-Практика-3
*Выполнил Малышев Роман*
## SQL-injection уязвимости
1. **Уязвимость SQL-инъекция, позволяющая войти в систему.** Для этого нужно знать логин, который есть в базе данных, но не нужно знать какой у него пароль.
Введем имя пользователя username и рандомный пароль.
![](https://i.imgur.com/tx893X5.png)
Получим ошибку в аутентификации, если не будем перехватывать запрос и поправлять username.
![](https://i.imgur.com/Hu1KTp0.png)
Воспользуемся уязвимостью.
![](https://i.imgur.com/44qC3yz.png)
![](https://i.imgur.com/D7bcWhb.png)
Также можно было ввести под username:`administrator'--` и также успешно зайти. ![](https://i.imgur.com/iZA7xrB.png)
2. **Уязвимость SQL-инъекции в условии WHERE, позволяющее извлекать скрытые данные.** Данная уязвимость позволяет перечислить все объекты которые есть в базе данных, то есть фильтр на поиск не будет работать.
 ![](https://i.imgur.com/7ygiRTE.png)
![](https://i.imgur.com/YiLWbw9.png)
3. **SQL-инъекция UNION атака, извлечение данных из других таблиц.**
Сначала нужно понять сколько столбцов в таблице. Сделаем за SQL запросы на один, два и три столбика. Таким образом выясним, что в таблице два столбика. 
![](https://i.imgur.com/dXOxhDi.png)
![](https://i.imgur.com/5jb4XyE.png)
![](https://i.imgur.com/ReLbZjM.png)
Теперь из таблицы users извличем данные по столбцам username и password. 
![](https://i.imgur.com/b6pcgKK.png)
Аналогичным образом, можно через поисковую строку. Здесь ещё лучша видны кофиденциальные данные.
![](https://i.imgur.com/u1KkrWg.png)
Теперь зайдем в аккаунт.
![](https://i.imgur.com/CSGgkVX.png)
![](https://i.imgur.com/MNEWFLS.png)
4. **SQL-инъекция, запрашивающая тип и версию базы данных в MySQL и Microsoft.**
Выясним аналогично сколько в таблице содержится столбиков.
![](https://i.imgur.com/evhBG0D.png)
![](https://i.imgur.com/LEqd93m.png)
![](https://i.imgur.com/TSq9nhA.png)
И да, # -- это комментарий, если попробуем вместо него использовать комментарий `--` -- он будет заблокирован.
![](https://i.imgur.com/ytCbQDq.png)
Сделаем запрос, чтобы выяснить версию базы данных
![](https://i.imgur.com/X1qpBQR.png)
![](https://i.imgur.com/Tri6sMy.png)
![](https://i.imgur.com/SDqLPUT.png)
## XSS уязвимости
1. **Хранимая XSS через коментарии**. 
![](https://i.imgur.com/ld6Ia65.png)
Напишем в комментариях скрипт, который высветит сообщение "Hello".
![](https://i.imgur.com/Qw1nRKR.png)
2. **XSS в DOM-модели**.
![](https://i.imgur.com/c9edwCO.png)
![](https://i.imgur.com/HVGqohX.png)
3. **Отраженная XSS**. 
![](https://i.imgur.com/fffD2fY.png)
![](https://i.imgur.com/yM22z7R.png)
![](https://i.imgur.com/drrvQz6.png)
![](https://i.imgur.com/sq4rgXg.png)
![](https://i.imgur.com/6mnwVTK.png)
4. **Отраженная DOM XSS**.
![](https://i.imgur.com/2ADE49e.png)
![](https://i.imgur.com/Jo4fSuR.png)
![](https://i.imgur.com/15D3FHj.png)
![](https://i.imgur.com/gVfdQZL.png)
## CSRF
1. **Уязвимость CSRF без защиты**.
Войдем под учетной записью: `wiener:peter`.
![](https://i.imgur.com/WU2CRiv.png)
Обновим почту, допустим tester@google.com.
![](https://i.imgur.com/2Xexcep.png)
Напишем скрипт который поменяет у пользователя почту. 
![](https://i.imgur.com/Eye6VWl.png)
![](https://i.imgur.com/bDfFgQT.png)
![](https://i.imgur.com/h3KxAHg.png)
![](https://i.imgur.com/K1YHitr.png)
2. **CSRF, где проверка токена зависит от метода запроса**.
Аналогично войдем под учетной записью: `wiener:peter`.![](https://i.imgur.com/uDlwtpj.png)
Обновим почту, допустим tester@google.com.![](https://i.imgur.com/fJVmV81.png)
![](https://i.imgur.com/7NP8YOp.png)
![](https://i.imgur.com/tsRFG4U.png)
![](https://i.imgur.com/e9XUNBb.png)
Это происходит потому что приложение правильно проверяет токен, когда в запросе используется метод POST, но пропускает проверку, когда используется метод GET.
## SSRF:
1. **Базовый SSRF для локального сервера**.
Можем сделать запрос на сайт и усзнать сколько данного товара в Лондоне.
![](https://i.imgur.com/oPoz7JZ.png)
Перехватим теперь в Burp Suite и подделаем запрос, так что бы увидеть интерфейс администрирования.
Стандартный запрос.
![](https://i.imgur.com/8sJIN4Y.png)
Подделанный. ![](https://i.imgur.com/T8sv8nX.png)
Видим теперь пользователей.
![](https://i.imgur.com/ECt7ISw.png)
Удалим Карлоса. ![](https://i.imgur.com/xi20YMC.png)
![](https://i.imgur.com/f5pC9Uy.png)
![](https://i.imgur.com/CcN3VYy.png)
2. SSRF с обходом фильтра через открытую уязвимость перенаправления.
Попробуем сделать как в прошлом задании, но ничего не получится. 
![](https://i.imgur.com/CAeixL0.png)
Перейдем на следующий продукт.
![](https://i.imgur.com/FCdIB7C.png)
Формируем теперь запрос, чтобы получить админский интерфейс. ![](https://i.imgur.com/d69wmQ7.png)
![](https://i.imgur.com/byC2Lij.png)
А теперь удалим Карлоса, здесь можно подсмотреть как правильно ввести команду. 
![](https://i.imgur.com/vKqBmz7.png)
![](https://i.imgur.com/SvtxDeL.png)
Проверим через админский интерфейс и видим, что пользователь был успешно удален.
![](https://i.imgur.com/ImIpud0.png)
## RCE:
**Внедрение команд операционной системы в простом случае**.
Сделаем запрос на количетсво данного товара. 
![](https://i.imgur.com/FrNRWrG.png)
Стандартный запрос.![](https://i.imgur.com/ywfPDqk.png)
Модернизируем. 
![](https://i.imgur.com/QcrFFBG.png)
Получили имя пользователя.
![](https://i.imgur.com/UY0twou.png)
## Path traversal
1. **File path traversal в простом случае**.
Стандартный запрос.
![](https://i.imgur.com/pqgDB25.png)
Модифицированный, с помощью него получили данные о пользователях.![](https://i.imgur.com/eFK80VN.png)
![](https://i.imgur.com/TDNb4hJ.png)
2. **Path traversal последовательности обхода, заблокированные абсолютным обходом пути**.
Стандартный запрос.
![](https://i.imgur.com/RgwG5NN.png)
Модифицированный.
![](https://i.imgur.com/1TpTZrh.png)
![](https://i.imgur.com/Ofjy8zM.png)
![](https://i.imgur.com/eIl7GJB.png)
## Итоговая статистика:
![](https://i.imgur.com/5ShroTn.png)
![](https://i.imgur.com/wJvFRYS.png)
![](https://i.imgur.com/zz6FSdd.png)
![](https://i.imgur.com/EfFEui0.png)
![](https://i.imgur.com/60xa9Ck.png)
![](https://i.imgur.com/2yvUFLP.png)
![](https://i.imgur.com/S5RjBGR.png)
![](https://i.imgur.com/EuG6XMz.png)
