Cross-Site Scripting: Stored, Reflected и DOM

Тестирование XSS следует проводить только в лаборатории или в авторизованной системе. Проверяются Request/Response, поведение сервера, Roles, State и влияние, используя минимальные тесты, не повреждающие данные.
Тестирование безопасности Web и API должно проверять границы доверия, разрешений, ввода, State и бизнес-логики. Каждый тест в статье предназначен для лаборатории, CTF или системы, для которой было получено явное разрешение. Данная статья посвящена тестированию XSS и предназначена для студентов Web PT и разработчиков. Цель – предоставить методику работы, которую можно применять на практике, на профессиональном собеседовании и в рабочей среде, не ограничиваясь словарным определением.
Основная проблема заключается в том, что данные почти всегда неполные. Context, encoding, CSP могут указывать направление, но их значение зависит от времени, актива, пользователя и ожидаемой активности. Поэтому мы построим тест вокруг исследовательского вопроса, необходимых доказательств и четкого критерия завершения.
Практический сценарий в статье: сопоставление Input-to-Sink в лабораторном приложении. Все примеры являются лабораторными данными или описанием процессов. При проведении Penetration Testing, Web или Cloud, работать следует только с явным разрешением, определенным Scope и возможностью остановить тест.




