Files
2026-07-30 11:35:10 +05:00

34 lines
3.4 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
**Server-side request forgery (SSRF)(подделка запроса)**-уязвимость, которая открывает возможность выполнения на стороне сервиса запросы в непреднамеренное место.
Во время типичной атаки, атакующий может заставить сервер подключиться к внутренним серверам в инфраструктуре организации. В другом случае, атакующий заставляет подключаться к произвольным внешним сервисам, что может привести к утечке данных.
## **SSRF** атака на сервера
При **SSRF** атаке на сервера, задача атакующего создать запрос назад к серверу, на котором находиться сервис, с помощью **Loopback network interface** (виртуальная сеть, позволяющая серверу взаимодействовать **самому с собой**).
Это обычно включает в себя подставку ссылки вида `127.0.0.1` или `localhost`.
Например, представим себе сервис, который позволяет смотреть, в наличии ли товар в выбранном магазине. Что бы получить информацию, приложение должно сделать запрос через различные `Rest APIs`. Оно делает это путем подстановки ссылки в релевантный `API` эндпоинт с помощью `HTTP` запроса с фронта сайта. Когда юзер видит статус о наличии, браузер создает такой запрос:
```http
POST /product/stock HTTP/1.0
Content-Type: application/x-www-form-urlencoded Content-Length: 118 stockApi=http://stock.weliketoshop.net:8080/product/stock/check%3FproductId%3D6%26storeId%3D1
```
Это позволяет серверу сделать запрос к конкретной ссылке, получив и вернув пользователю статус.
В данном случае, атакующий может заменить строчку `stokApi` :
```http
POST /product/stock HTTP/1.0
Content-Type: application/x-www-form-urlencoded Content-Length: 118 stockApi=http://localhost/admin
```
## **SSRF** атака через другие backend системы
В большинстве случаев, сервер сервиса меет возможность взаимодействовать с **backend** системы, которые напрямую не доступны пользователям. Такие системы обычно имеют не-маршрутизируемые приватные **IP** адресы. Back-end системы обычно защищены сетевой топологией, которые часто имеют уязвимости.
Представим, что в прошлом примере панель администратора быда на приватном **IP**
```http
POST /product/stock HTTP/1.0
Content-Type: application/x-www-form-urlencoded Content-Length: 118 stockApi=http://192.168.0.68/admin
```