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

3.4 KiB
Raw Permalink Blame History

Server-side request forgery (SSRF)(подделка запроса)-уязвимость, которая открывает возможность выполнения на стороне сервиса запросы в непреднамеренное место. Во время типичной атаки, атакующий может заставить сервер подключиться к внутренним серверам в инфраструктуре организации. В другом случае, атакующий заставляет подключаться к произвольным внешним сервисам, что может привести к утечке данных.

SSRF атака на сервера

При SSRF атаке на сервера, задача атакующего создать запрос назад к серверу, на котором находиться сервис, с помощью Loopback network interface (виртуальная сеть, позволяющая серверу взаимодействовать самому с собой).

Это обычно включает в себя подставку ссылки вида 127.0.0.1 или localhost.

Например, представим себе сервис, который позволяет смотреть, в наличии ли товар в выбранном магазине. Что бы получить информацию, приложение должно сделать запрос через различные Rest APIs. Оно делает это путем подстановки ссылки в релевантный API эндпоинт с помощью 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 :

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

POST /product/stock HTTP/1.0 
Content-Type: application/x-www-form-urlencoded Content-Length: 118 stockApi=http://192.168.0.68/admin