❓SSRF — кто ты такой?❓
Server-Side Request Forgery или подделка запроса на стороне сервера — это уязвимость веб-приложения, которая заставляет сервер отправлять запросы в несанкционированные места. В типичной атаке сервер вынуждают подключаться к сервисам, доступным только внутри инфраструктуры организации. В других случаях можно достучаться и до внешних систем. Итог — утечка чувствительных данных. 👊Чем это грозит?
С помощью данной уязвимости можно:
➖Прочитать локальные файлы
➖Получить доступ к внутренним системам
➖Обойти ограничения
➖Просканировать внутреннюю сеть
Куда мы без примера-то
В атаке
SSRF сервер можно заставить выполнить HTTP-запрос на свой же loopback-интерфейс: 127.0.0.1 или localhost.Предположим, сайт магазина позволяет просматривать товары. Для этого фронтенд дергает
API, передавая URL на соответствующий endpoint бекенда через 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
Можно модифицировать этот запрос и направить его на другой
URL:
POST /product/stock
HTTP/1.0
Content-Type: application/x-www-form-urlencoded
Content-Length: 118
stockApi=http://localhost/admin
Теперь сервер запросит содержимое
/admin и вернёт его нам. Пусть напрямую мы и так можем попасть на /admin, но вот функции администратора обычно доступны только после авторизации. Так как запрос уходит изнутри, обычный обойти проще простого. Внутренние машины ведь доверяют приложению по умолчанию.🍪
Потрогать руками этот тип уязвимости можно в следующих лабах:
✏️Basic SSRF against another back-end system
✏️Basic SSRF against the local server
✏️Blind SSRF with out-of-band detection
✏️SSRF with blacklist-based input filter
✏️SSRF with filter bypass via open redirection vulnerability
➥ ☕️ тг • 🤬чатик • ✍️посты
#web #writeup
