---
# System prepended metadata

title: WEB Basic - 3

---

# WEB Basic - 3

**SQL-injection уязвимости**
1. SQL injection vulnerability allowing login bypass
- изучаем работу приложения, вводим произвольные логин и пароль. Сервер возвращает - Invalid username or password.
![](https://i.imgur.com/PnhYnSq.png)

- подставляем ' в поле Username, возвращается - Internal Server Error, значит можно предположить, что нет фильтрации входных данных в SQL-запросах
![](https://i.imgur.com/CZKXmDN.png)

- в Burp Suite изменяем параметр username на administrator'--', отбрасываем параметр пароля и отправляем запрос
![](https://i.imgur.com/eaPZdsW.png)


![](https://i.imgur.com/xE8wg8G.png)

2. Lab: SQL injection vulnerability in WHERE clause allowing retrieval of hidden data

- изучаем работу приложения 
> всего -12 товаров, в 4-х категориях (по 3 в каждой)

- в параметрах URL видим фильтрацию по категориям
![](https://i.imgur.com/4MO2ddX.png)

> проверяя категории, вводим ' и комментарий в парамет в URL после категории товаров.
> Видим вывод введенных символов, значит нет фильтрации в SQL-запросах на сервере
![](https://i.imgur.com/u2AeHLX.png)

> дополним SQL-запрос - '+OR+1=1--
> Видим весь перечень товаров
![](https://i.imgur.com/p1RfpeT.png)

- также можно посмотреть весь перечень изменяя параметр ID, так как там тоже нет фильтрации
![](https://i.imgur.com/r7KFKSd.png)

3. Lab: SQL injection UNION attack, retrieving data from other tables

- для начала нужно узнать сколько столбцов в таблице
- через Burp Suite дополняем запрос - '+UNION+SELECT+'abc'
- сервер возвращает - Internal Server Error
![](https://i.imgur.com/mf4pgEp.png)

- дополняем SQL-запрос - '+UNION+SELECT+'abc','def'--
- ответ от сервера изменился
![](https://i.imgur.com/uwBr8gE.png)

- попробуем указать наименования столбцов из таблицы users- '+UNION+SELECT+username,+password+FROM+users--
![](https://i.imgur.com/iA1jlTS.png)

- видим вывод учетных записей нескольких пользователей
![](https://i.imgur.com/0HRht1L.png)

- заходим под учетной записью администратора
![](https://i.imgur.com/EkhaRIR.png)

4. Lab: SQL injection attack, querying the database type and version on MySQL and Microsoft
- узнаем сколько столбцов в таблице, в Burp Suite дописываем в SQL-запрос - '+UNION+SELECT+'abc','def'# 
![](https://i.imgur.com/Fo8zn5V.png)

- видим вывод в ответе введенные данные
![](https://i.imgur.com/oNeame8.png)

- добавляем в запрос параметр версии
![](https://i.imgur.com/ZJE3Ooa.png)

- в ответе Burp Suite и браузере видим версию MySQL
![](https://i.imgur.com/91UI6rp.png)


**XSS уязвимости:**

1. Lab: Stored XSS into HTML context with nothing encoded
 - изучаем работу приложения:
 > видим, что к каждой публикации есть поле для ввода комментария, имя, e-mail и веб-сайта

- попробуем заполнить эти поля и подставить спецсимволы, отправим комментарий и вернемся в блог
> видим, что спецсимволы не экранируются
![](https://i.imgur.com/etWAYpW.png)

- попробуем подставить скрипт и отправить комментарий
![](https://i.imgur.com/EJbheJe.png)

- отправим комментарий
![](https://i.imgur.com/VjA1pDW.png)

- вернемся в блог, скрипт сработал
![](https://i.imgur.com/ozo2l0g.png)

2. Lab: DOM XSS in document.write sink using source location.search

- изучаем работу приложения
> вводим произвольный запрос в поисковую строку и проверяем куда он падает в JS
![](https://i.imgur.com/4IeaTNl.png)

- подставляем полезную нагрузку
![](https://i.imgur.com/QHusICz.png)

- скрипт сработал
![](https://i.imgur.com/kXPNnrl.png)
![](https://i.imgur.com/JjLvuTV.png)

3. Lab: Reflected XSS into a JavaScript string with angle brackets HTML encoded
 
- изучаем работу приложения
> вводим произвольный запрос в поисковую строку и проверяем куда он падает в JS
> данные попали в скрипт
![](https://i.imgur.com/0CcI1jT.png)

- подставляем полезную нагрузку
![](https://i.imgur.com/n2Er9nU.png)

- скрипт сработал 
![](https://i.imgur.com/1Z8qqpd.png)
![](https://i.imgur.com/CHsqWNS.png)

4. Lab: Reflected DOM XSS

- изучаем работу приложения
> отправляем произвольный запрос и видим, что  в ответе содержится json 
> ![](https://i.imgur.com/gYtqjwE.png)

> формирует его функция, которая к результату поиска добавляет сам запрос
![](https://i.imgur.com/bqP4Dqj.png)

> вводим произвольный запрос с спецсимволами в поисковую строку и видим, что они не экранируются
![](https://i.imgur.com/CyeoPma.png)

- добавляем полузную нагрузку
![](https://i.imgur.com/t4G7kub.png)

- скрипт сработал
![](https://i.imgur.com/v5l8BjM.png)
![](https://i.imgur.com/BAz4HfG.png)

CSRF:

1. Lab: CSRF vulnerability with no defenses

- заходим в приложение под учетной записью wiener
![](https://i.imgur.com/iXzT19V.png)

- обновляем адрес электронной почты
![](https://i.imgur.com/xlNuGD9.png)

- находим POST запрос в Burp Suite, который отсылали на измение почты
![](https://i.imgur.com/4iTAvQV.png)

- пишем HTML-код, в котором указываем ссылку (параметр host в POST-запросе) на страницу изменения почты, метод и новую почту 
![](https://i.imgur.com/SNpxfw3.png)

- переходим на сервер эксплойтов, вставляем свой HTML-код в раздел «Body» и сохраняем
![](https://i.imgur.com/3Y9XXGi.png)

- проверяем работу кода и отправляем жертве
![](https://i.imgur.com/LQV0ZR4.png)
![](https://i.imgur.com/nUs6y9D.png)

2. Lab: CSRF where token validation depends on request method

- заходим в приложение под учетной записью wiene
![](https://i.imgur.com/J5YAyCB.png)

- обновляем адрес электронной почты
![](https://i.imgur.com/TMN2Ynt.png)

- в Burp Suite перехватываем запрос и видим, что это POST-запрос и есть параметр csrf
![](https://i.imgur.com/s2Ezqh7.png)

- стоит учитывать, что если изменить параметр csrf запрос будет отклонен
![](https://i.imgur.com/u6anGXh.png)

- пишем HTML-код в котором указываем метод GET, ссылку на страницу изменения почты и новую почту, но без указания параметра csrf  
 ![](https://i.imgur.com/qZm4lbY.png)

- переходим на сервер эксплойтов, вставляем свой HTML-код в раздел «Body» и сохраняем
![](https://i.imgur.com/iixyXn4.png)

- проверяем работу кода и отправляем жертве
![](https://i.imgur.com/sQLvK9i.png)
![](https://i.imgur.com/HWonBV3.png)

SSRF:
1. Lab: Basic SSRF against the local server

- проверяем работу приложения
> на каждой позиции (товаре) есть опция проверки остатков в определенном городе
> значит приложения извлекает данные с сервера
> ![](https://i.imgur.com/Z9zjYjL.png)

- проверим возможность получения данных по URL
> перехватываем запрос в Burp Suite и изменяем параметр stockApi
![](https://i.imgur.com/RmTo9gB.png)

> сервер возвращает список админов и возможной опции их удаления
![](https://i.imgur.com/nCTwf40.png)

> в HTML-коде находим путь для удаления пользователя
![](https://i.imgur.com/Cu1ve9m.png)

- модифицируем запрос к серверу
![](https://i.imgur.com/LVUBNpd.png)

> выполняем атаку
![](https://i.imgur.com/vL3zxkG.png)


2. Lab: SSRF with filter bypass via open redirection vulnerability

- проверяем работу приложения
> в каждом товаре есть опция перехода к следующему товару, причем путь помещается в заголовок
![](https://i.imgur.com/mmckDfF.png)

- изменяя параметр stockApi невозможно отправить запрос напрямую другому хост
![](https://i.imgur.com/yFS3vAW.png)

- попробуем перенаправить запрос используя парамет path и получим админский интерфейс
![](https://i.imgur.com/47rg1fY.png)

- в HTML-коде находим путь для удаления пользовател
![](https://i.imgur.com/6uLp36h.png)

- модифицируем запрос к серверу и удалим пользователя
![](https://i.imgur.com/FvKbU50.png)

- задание выполнено
![](https://i.imgur.com/nozxZhO.png)

RCE:

Lab: OS command injection, simple case

- проверяем работу приложения
> видим в запросе параметры productId и storeId 
![](https://i.imgur.com/CRwQvl7.png)

- попробуем добавить команду для выполнения на сервере
![](https://i.imgur.com/JyKuOr5.png)

- задание выполнено
![](https://i.imgur.com/8XTTl84.png)
![](https://i.imgur.com/JGo3XWc.png)

Path traversal:

1. Lab: File path traversal, simple case

- проверяем работу приложения
> видим что при запросе использутся параметр filename в котором лежит файл (.jpg)
![](https://i.imgur.com/WWURjZt.png)

- изменяем путь и файл, указываем абсолютный путь к файлу /etc/passwd
![](https://i.imgur.com/Rtvq3Gf.png)

- задание выполнено
![](https://i.imgur.com/cuSK40X.png)

2. Lab: File path traversal, traversal sequences blocked with absolute path bypass

- на примере предыдущего задания попробуем обратится к файлу /etc/passwd, но видим что здесь абсолютный путь заблокирован 
![](https://i.imgur.com/zo7d42F.png)

- попробуем обратится по относительному пути
![](https://i.imgur.com/lkQL7mi.png)

- задание выполнено
![](https://i.imgur.com/zK5VQwE.png)


![](https://i.imgur.com/Pqd1q1y.png)
