February 22, 2023

Мини заметка: методология XSS для начинающих

Что такое XSS (межсайтовый скриптинг)?
Межсайтовый скриптинг - это тип уязвимости системы безопасности, обычно встречающийся в веб-приложениях. Атаки XSS позволяют злоумышленникам внедрять клиентские скрипты в веб-страницы, просматриваемые другими пользователями. Уязвимость межсайтового скриптинга может быть использована злоумышленниками для обхода средств контроля доступа, таких как политика одного источника.

Никто не раскроет свою методологию поиска ошибок, потому что, если все согласятся, мы будем следовать точным инструкциям в поиске ошибок
Тогда по прошествии времени методология полностью станет бесполезной.
Итак, я поделюсь основной концепцией поиска XSS, а не расскажу вам о точных шагах.
Начнем наше обсуждение с концепции XSS.

Что мы делаем для поиска XSS?

1. Мы пытаемся найти параметр (либо основанный на получении, либо основанный на публикации)
2. Отфильтруйте те параметры, значение которых отражается на странице.
3. Затем мы тестируем простую полезную нагрузку xss, т.е. <script>alert(0)</script>
4. Если значение параметра является отражающим, но вы не можете выполнить простую полезную нагрузку xss из-за WAF (брандмауэр веб-приложений)

Затем вы пытаетесь обойти WAF,
Например, если функция alert() является заблокированным ключевым словом, что, если мы попытаемся выполнить эту полезную нагрузку:

<script>confirm(1)</script>

Но что, если функция confirm () также заблокирована WAF,
Затем мы можем попытаться использовать эту полезную нагрузку:

<script>prompt(1)</script>

Иногда заменяя <script> на <ScRiPt> или на <SCRIPt> или на любой другой тег сценария в верхнем и нижнем регистре
Мы можем попытаться обойти WAF, WAF - это очень широкая тема, мы обсудим ее как-нибудь в другой раз.

Итак, какой, по вашему мнению, самый важный шаг?
Правильно, это поиск параметров!

Запомнить, еще один параметр == Высокая вероятность получения валидного XSS

Если вы используете цель только для поиска параметров, то это хорошо, но не очень.

Если вы сможете найти какой-то скрытый параметр, то есть высокая вероятность найти работающую xss.

Есть некоторые случаи, когда иногда разработчики даже не знают о некоторых параметрах, которые могут быть ценными для хакеров

Вывод, который я хочу сделать из этого поста, заключается в том, что, важно найти скрытый параметр, что ж, возможно, теперь вы спросите, как мы можем найти скрытые параметры?

Ответ: waybackurls by Tomnomnom

Установить: https://github.com/tomnomnom/waybackurls
Использование: cat domains.txt | waybackurls > urls.txt

Несколько бонусных советов

1. DOM XSS очень редок и, следовательно, его трудно найти
2. Reflected XSS легко найти
3. За Stored XSS платитя хорошо, но немного сложнее искать
4. Если вы каким-то образом смогли найти Self XSS (никакой награды за Self XSS), то попробуйте связать его с помощью CSRF или nsecure CORS
5. Знаете ли вы, что 30% хакеров пытались найти Blind XSS?
6. Уязвимость при неограниченной загрузке файлов также может привести к XSS