**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 ```