TGViewer
Standoff Bug Bounty Tips Standoff Bug Bounty Tips @standoff_bb_tips · 1.66K subscribers
Post #123 1.06K
🔥 Merge slashes в Nginx

Ситуация: бэкенд уязвим к Path Traversal, но пробиться через ../ не выходит — мешает Nginx-прокси, который сразу рубит запрос с ошибкой 400 Bad Request, как только вылезает выше корня.

😵 Примеры:

/../../anything → 400 Bad Request
/deep/path/../../anything → OK
/deep/path/../../../anything → 400 Bad Request


Но есть нюанс: если в конфиге отключён merge_slashes (значение off), Nginx не будет схлопывать двойные и более слэши (//) перед проверкой. Это позволяет обойти его:

1. Для Nginx путь выглядит очень глубоким из-за /////.

2. Прокси думает, что ты ещё внутри разрешённого диапазона.

3. А вот приложение, которое реально работает с файловой системой, уже нормализует путь, схлопывает все // в / и получает нормальный Path Traversal.

💡 Если уязвимый эндпоинт лежит не в корне, а глубже (например /deep/path), то уже оттуда можно подниматься на несколько уровней без всяких merge_slashes off. Как видно из примера выше, /deep/path/../../anything всё ещё отрабатывает.
  • 🔥 7
  • ❤ 4
More from @standoff_bb_tips
  1. Oct 11, 2026Что скрывается в имени HTML-тега? Может быть, JavaScript? Gareth Heyes из PortSwigger пока…
  2. Oct 4, 2026Хочешь прокачать своего багбаунти-агента ❓ Обрати внимание на Model-Context-Protocol (MCP)…
  3. Oct 3, 2026Эксплуатация багов, связанных с ошибками в бизнес-логике 🤔 Логические баги — это когда ко…
  4. Sep 7, 2026Post #255
  5. Sep 5, 2026Мы накидали 6 разных вариантов атак для простого GET-запроса на редактирование профиля ⤵️…
  6. Aug 15, 2026Stored XSS через картинку: проверь Content-Type override 😵‍💫 Иногда загрузка изображений…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →