Взлом
Уважаемые гости! При посещении нашего сайта просим вас ознакомиться с разделами форума, прежде чем оставлять ваши объявления и т.п., а также при обращении за помощью просим быть внимательными: на сайте есть как проверенные специалисты, так и непроверенные. Если вы обратились к специалисту, который проверку НЕ проходил, рекомендуем воспользоваться услугой гарант-сервиса. Спасибо, что посетили форум хакеров.

Использование XSS в скрытых входах и метатегах

BoHDaN★

Новый
Пользователь
Регистрация
7 Авг 2025
Сообщения
19
Реакции
0
Баллы
1
Возраст
31

Как использовать HTML-всплывающие окна (popover) в Chrome и их влияние на XSS-уязвимости​

С выходом последних обновлений Chrome появилась новая и малоизвестная функция — HTML-всплывающие окна (popover). Эта возможность позволяет создавать всплывающие элементы без использования JavaScript. И, как ни странно, именно это нововведение открывает новый вектор для потенциальных XSS-атак.
Знімок екрана 2025-08-27 115124.png

Что такое popover и как он работает?​

HTML-атрибут popover делает элемент невидимым до тех пор, пока он не будет явно отображён с помощью связанного элемента, обладающего атрибутом popovertarget. Например:

<button popovertarget="popup">Нажми меня</button>
<div popover id="popup">Я — всплывающее окно</div>
Эта функциональность прекрасно справляется с созданием всплывающих окон для уведомлений, модальных окон или подсказок. Но, как выяснилось, при неправильной обработке пользовательских данных она может стать источником XSS-уязвимостей.

Использование onbeforetoggle для запуска XSS​

Особый интерес представляет событие onbeforetoggle, которое запускается в момент активации всплывающего окна. Это событие может использоваться даже в скрытых элементах, что открывает неожиданные возможности для внедрения вредоносного кода:
<button popovertarget="x">Click me</button>
<xss onbeforetoggle=alert(1) popover id="x">XSS</xss>
Нажатие на кнопку вызывает всплывающее окно, в результате чего срабатывает событие onbeforetoggle, и JavaScript-код выполняется.

XSS во скрытых полях форм​

Одна из опасных особенностей заключается в том, что XSS можно внедрить даже в скрытое поле формы:
<button popovertarget="x">Click me</button>
<input type="hidden" value="test" popover id="x" onbeforetoggle=alert(1)>
Хотя такие элементы обычно не взаимодействуют напрямую с пользователем, всплывающая система Chrome позволяет активировать их события простым нажатием кнопки.

Один идентификатор — два элемента​

Особую угрозу представляет возможность использования одинакового id у нескольких элементов. Если у вас есть скрытое поле с вредоносным скриптом и существующее всплывающее окно с тем же идентификатором, браузер будет использовать первый найденный элемент:
<input type="hidden" popover id="x" onbeforetoggle=alert(1)>
<div popover id="x">Я обычный popup</div>
<button popovertarget="x">Нажми</button>
В результате запускается событие в скрытом поле, несмотря на наличие "легального" всплывающего окна.

XSS в <meta>-тегах через popover​

Ещё одна неожиданная уязвимость — использование popover в meta-элементах внутри <head>. Хотя meta-теги обычно не участвуют в DOM-взаимодействиях, при наличии элемента с popovertarget можно активировать событие и в них:
<head>
<meta name="viewport" content="width=device-width" popover id="newsletter" onbeforetoggle=alert(1)>
</head>
<body>
<button popovertarget="newsletter">Подписаться</button>
<div popover id="newsletter">Форма подписки</div>
</body>
Таким образом, даже данные в <meta> становятся потенциальной мишенью.

Почему это опасно?​

Функция popover может быть полезна в UI, но если веб-приложение не экранирует пользовательские данные, это превращается в XSS-апокалипсис. Уязвимости:
  • Не требуют JavaScript для создания модальных окон.
  • Активируются простым нажатием кнопки.
  • Работают в скрытых и служебных элементах (input hidden, meta).
  • Часто обходят Web Application Firewall (WAF), так как используют нестандартные события (onbeforetoggle).

Как защититься?​

Чтобы предотвратить XSS-атаки с использованием popover, необходимо:
  • Экранировать все пользовательские данные, вставляемые в DOM.
  • Не позволять HTML-инъекции в id, on* события и другие чувствительные атрибуты.
  • Использовать Content Security Policy (CSP) для блокировки выполнения встроенных скриптов.
  • Проводить регулярный аудит кода на наличие уязвимостей.

Вывод​


Новая функция popover в HTML и Chrome открывает интересные возможности для создания всплывающих окон — но также и новые пути для XSS-атак. Даже такие "безопасные" элементы, как скрытые поля и мета-теги, могут использоваться злоумышленниками. Разработчикам стоит внимательно отнестись к внедрению этой технологии, особенно в контексте безопасности пользовательских данных.
 
Яндекс.Метрика