Перевод: Отраженный XSS с использованием двойного кодирования

Перевод: Отраженный 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
XSS

Да. Это сработало …

OpenBugBounty

Вы также можете использовать полезные нагрузки, такие как

‘ 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 - Инстаграм проекта

Report Page