Перевод: Отраженный XSS с использованием двойного кодирования
@Ent_TranslateIBОбход XSS-фильтров с помощью двойного кодирования
Здравствуйте, хакеры,
Недавно я начал свое путешествие по поиску ошибок и получил XSS в обход Cloudflare WAF (вы можете прочитать об этом здесь). Теперь я вернулся с еще одним XSS с помощью двойного кодирования.
Эта техника атаки заключается в двойном кодировании параметров запроса пользователя в шестнадцатеричном формате, чтобы обойти средства контроля безопасности или вызвать неожиданное поведение приложения. Это становится возможным, потому что веб-сервер принимает и обрабатывает клиентские запросы во многих закодированных формах.
Перейдем прямо к делу...
Если есть желание, то есть и способ. Например, если есть поле ввода, есть вероятность межсайтового скриптинга. В настоящее время я использую очень базовые методы, пытаясь найти ошибки и совершенствуясь, изучая больше методов и ошибок. Просматривая некоторые цели и тестируя поля ввода (например, поля поиска), я получил интересное поле ввода, в которое я просто ввел обычный текст ввода
и проверил исходный код.
Затем я добавил одинарную кавычку, но она отфильтровала ввод и заменила ее на hello1& в некоторых местах и на '&' в наших целевых полях.
Я попробовал URL-кодирование, но получил тот же результат, что означает, что он декодирует входные данные.
Поэтому я использовал двойную кодировку.
Использование двойного кодирования позволяет обойти фильтры безопасности, которые декодируют вводимые пользователем данные только один раз. Второй процесс декодирования выполняется платформой бэкенда или модулями, которые правильно обрабатывают кодированные данные, но не имеют соответствующих проверок безопасности.
Это работает.
Затем попробовали нашу основную полезную нагрузку '><script>alert(1)</script> с двойной кодировкой.
%2527%253E%253Cscript%253Ealert%25281%2529%253C%252Fscript%253E
Но это привело к ошибке
Я искал атрибуты тега input, чтобы использовать его.
onfocus: Событие onfocus происходит, когда элемент получает фокус.
‘ onfocus=’alert(1)’
%2527%2520onfocus%253D%2527alert%25281%2529%2527%2520
Я нажал на строку поиска, и появилось всплывающее предупреждение.
Но я подумал о том, чтобы немного модифицировать его с помощью автофокуса, который заставляет текстовое поле автоматически фокусироваться при загрузке страницы и создает всплывающее предупреждение во время посещения самой страницы.
‘ onfocus=’alert(1)’ autofocus=’
%2527%2520onfocus%253D%2527alert%25281%2529%2527%2520autofocus%253D%2527
Да. Это сработало …
Вы также можете использовать полезные нагрузки, такие как
‘ onmouseover=’alert(1)’
%2527%2520onmouseover%253D%2527alert%25281%2529%2527%2520
Спасибо Вам За Чтение ....
Подпишитесь на меня:
Twitter: https://twitter.com/ag3n7apk
Linkedin: https://www.linkedin.com/in/abhijith-pk-ag3n7/
Оригинал статьи - здесь.
Поддержите автора хлопками на Medium.
Перевод статьи был выполнен проектом перевод энтузиаста:
- 📚 @Ent_TranslateIB - Телеграмм канал с тематикой информационной безопасности
- 🔥 @Ent_Translate - Инстаграм проекта