(Blind SSRF) Слепая подделка запросов на стороне сервера

В этом разделе мы объясним, что такое «слепая» подделка серверных запросов, опишем распространенные примеры Blind SSRF и расскажем, как находить и эксплуатировать

Что такое слепой SSRF?

Уязвимости Blind SSRF возникают, когда приложение можно побудить выполнить бекэнд HTTP-запрос по переданному URL, но ответ на этот бекэнд-запрос не возвращается во фронтенд-ответе приложения.

Каковы последствия уязвимостей Blind SSRF?

Воздействие уязвимостей Blind SSRF часто ниже, чем у полноценных уязвимостей SSRF, из‑за их односторонней природы. Их нельзя тривиально использовать для извлечения конфиденциальных данных из бекэнд-систем, хотя в некоторых ситуациях их можно эксплуатировать для достижения полного удаленного выполнения кода (RCE).

Как находить и эксплуатировать уязвимости Blind SSRF

Самый надежный способ обнаружения уязвимостей Blind SSRF — применение техник out-of-band (OAST). Это включает попытку спровоцировать HTTP-запрос к внешней системе, которой вы управляете, и мониторинг сетевых взаимодействий с этой системой.

Самый простой и эффективный способ использовать техники out-of-band — через Burp Collaborator. Вы можете использовать Burp Collaborator, чтобы генерировать уникальные доменные имена, отправлять их в качестве полезных нагрузок (payloads) приложению и отслеживать любые взаимодействия с этими доменами. Если наблюдается входящий HTTP-запрос, исходящий от приложения, значит, оно уязвимо к SSRF.

Примечание

При тестировании уязвимостей SSRF часто наблюдается DNS‑резолвинг (look-up) переданного домена Collaborator, но без последующего HTTP‑запроса. Обычно это происходит потому, что приложение попыталось выполнить HTTP‑запрос к домену, что вызвало начальный DNS‑резолвинг, но сам HTTP‑запрос был заблокирован сетевой фильтрацией. Довольно распространено, что инфраструктура разрешает исходящий DNS‑трафик, поскольку он необходим для многих целей, но блокирует HTTP‑соединения к неожиданным пунктам назначения.

Простое выявление уязвимости Blind SSRF, способной инициировать out-of-band HTTP‑запросы, само по себе не обеспечивает путь к эксплуатации. Поскольку вы не можете видеть ответ на бекэнд‑запрос, это поведение нельзя использовать для изучения содержимого на системах, до которых может дотянуться сервер приложения. Однако его можно задействовать для зондирования других уязвимостей на самом сервере или на других бекэнд‑системах. Вы можете вслепую просканировать внутреннее IP‑адресное пространство, отправляя полезные нагрузки, предназначенные для детектирования широко известных уязвимостей. Если эти полезные нагрузки также используют «слепые» out-of-band техники, вы можете обнаружить критическую уязвимость на непропатченном внутреннем сервере.

Еще один путь эксплуатации уязвимостей Blind SSRF — побудить приложение подключиться к системе, находящейся под контролем злоумышленника, и возвращать вредоносные ответы HTTP‑клиенту, который выполняет соединение. Если вы сможете эксплуатировать серьезную уязвимость на стороне клиента в реализации HTTP‑клиента сервера, вы можете добиться удаленного выполнения кода в инфраструктуре приложения.

Last updated