TGViewer
Standoff Bug Bounty Tips Standoff Bug Bounty Tips @standoff_bb_tips · 1.66K subscribers
Post #65 900
⚒️ Автоматизация поиска Client-Side Path Traversals

CSPT — техника, известная с 2007 года, но не все багхантеры с ней знакомы. Давайте это исправим!

Представьте страницу профиля, которая всегда возвращает один и тот же HTML, но в URL есть параметр id. Скрипт на клиенте делает запрос к API по этому id, например:

example.com/profile?id=10 → браузер делает запрос к example.com/api/users/10 и подставляет данные.


Часто багхантеры пытаются найти IDOR, меняя id, но мало кто смотрит, что браузер делает отдельный запрос к API. А если подставить путь с traversal-паттернами, например id=../../hello?

Если браузер запросит example.com/hello — значит есть возможность управлять путями в запросах с клиента!

🤔 Почему это важно?

Потому что теперь вы можете заставить браузер жертвы делать запросы по произвольным путям, что открывает путь для цепочек уязвимостей — например, XSS через поддельный ответ API.

➡️Анализ ответа

Если мы перехватим запрос и проверим ответ, то можем увидеть что-то вроде:

{
"id": 10,
"name": "John Doe",
"pic": "images.example.com/pic-12345.jpg"
}


Что бы мы могли сделать, если бы могли контролировать ответ на этот запрос? По сути, мы могли бы создать ссылку, которая при нажатии жертвы отправляла бы запрос в API, который затем возвращал бы контент, который мы контролируем.

Ценность контроля над этим контентом зависит от того, что с ним делает приложение. В нашем примере pic используется как src тега <img>, а значит, появляется возможность эксплуатации XSS.

➡️Open redirects

Если на сервере есть open redirect, можно заставить браузер сходить на внешний контролируемый ресурс и вернуть вредоносный контент.

Пример:

/profile?id=../../redirect%3Furl%3Dxss.example.com


— теперь ответ API контролируем мы, и можно пытаться эксплуатировать ту же самую XSS.

💡 Автоматизация

Chrome-расширение Gecko перехватывает все запросы, анализирует URL вкладки и проверяет, отражается ли часть текущего URL в запросах — признак CSPT:

▪️Сервис-воркер слушает запросы (chrome.webRequest.onBeforeRequest)
▪️Проверяет совпадения путей и параметров
▪️Хранит данные в локальном хранилище
▪️Показывает результаты в DevTools-панели и через всплывающее окно
▪️Поддерживает частичное совпадение, чтобы ловить случаи с расширениями файлов и вариациями путей
  • ❤‍🔥 9
  • 🔥 3
  • ❤ 2
  • 🦄 1
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 →