Формирование payloads для XSS
Всем привет. Сегодня хочу подсветить один полезный источник, который помогает быстрее формировать payloads для XSS и не пытаться каждый раз вспоминать всё из головы или брутить из готовых списков.
Речь про Cross-site scripting (XSS) cheat sheet от PortSwigger. ➥ https://portswigger.net/web-security/cross-site-scripting/cheat-sheet
Лично я сам не ищу XSS в Bug Bounty, так как сижу в мобилках. Но мои коллеги активно используют этот cheat sheet, да и в лабах PortSwigger он регулярно всплывает как помощник.
━━━━━━━━━━ Что это вообще такое ━━━━━━━━━━
На первый взгляд сервис может показаться странным или даже перегруженным. • Много тегов. • Много событий. • Много payloads. • Разные браузеры. • Разные контексты.
Но если понимать базовый флоу поиска XSS, то всё становится логично. XSS — это уязвимость, при которой пользовательские данные попадают в HTML/JavaScript так, что браузер начинает выполнять их как код. Самый известный пример: • <script>alert(1)</script>
В реальности такие простые payloads сейчас редко проходят. Фильтры, WAF, Санитизация входных данных, CSP довольно часто режут очевидные варианты. Поэтому приходится искать не просто “любой payload”, а payload под конкретный контекст.
━━━━━━━━━━ Где здесь помогает cheat sheet ━━━━━━━━━━
Обычно флоу выглядит примерно так: • нашли точку входа • поняли, куда попадает ввод • проверили, какие символы режутся • поняли, какие теги проходят • дальше ищем событие или конструкцию, которая даст выполнение JS
И вот на этом этапе cheat sheet от PortSwigger нам помогает. Вместо того чтобы вручную вспоминать все варианты, можно выбрать: • нужный HTML-тег • нужное событие • браузер • тип вектора • контекст, где payload может сработать
Например, если фильтр не пропускает <script>, но пропускает другие теги, можно смотреть варианты через: • img • svg • iframe • input • body • кастомные теги
А дальше уже подбирать событие для вызова xss: • onerror • onload • onfocus • onmouseover • и другие варианты
━━━━━━━━━━ Мини итог по сервису ━━━━━━━━━━
Cross-site scripting cheat sheet от PortSwigger — это не “кнопка найти XSS”. Его ценность в том, что помогает быстро перейти к тому какой тег и какое событие проходят в этом контексте. Он не заменяет понимание XSS, он ускоряет этап подбора нестандартного payload.
Главное не использовать его как слепой список payloads, а применять уже после понимания того, куда именно попал ваш ввод и какие ограничения стоят на пути.
#AppSec #XSS #PortSwigger #BugBounty #Pentest #WebSecurity #CyberSecurity #BurpSuite
· 15.07
alert(1) Редко но проходят. На санитизацию нередко забивают болт, нередко чувствительные данные хранят в storage. Надзор WAF по передачам данных обходится через создание new Image() src="path_to_collector" Так что иногда но работает.
ответить
коммент удалён