TGViewer
Standoff Bug Bounty Tips Standoff Bug Bounty Tips @standoff_bb_tips · 1.66K subscribers
Post #140 1.24K
💨 XSS через React createElement

Функция createElement() используется для создания React-элементов. Она принимает три параметра:

const element = createElement(type, props, ...children)


1⃣ type: может быть либо строкой с именем тега (т.е. div становится <div></div>), либо классом компонента, который будет вызван для построения элемента.

2⃣ props: может быть либо объектом, либо null. Пары ключ/значение в объекте будут присвоены создаваемому элементу как атрибуты, если type — строка с именем тега, или как свойства, если type — это класс компонента.

3⃣ ...children: дочерний узел (узлы) создаваемого элемента.

Если ты можешь передать ввод из источника в sink createElement() через один или несколько из этих параметров, он может влиять на генерацию HTML и достичь DOM XSS/CSS injection (в зависимости от версии).

Предполагая,что ты контролируешь десериализованный JSON или сериализованный HTML, которые передаются в createElement(), то параметры, которые ты можешь задать, определяют, чего ты можешь достичь ⬆️

Ресурсы:

⏳ Подробнее про эксплуатацию Script Injection Flaws в приложениях ReactJS

⏳ Статья Nick Bloor про эскалацию createElement-XSS до RCE в Electron-приложениях через CVE-2023-2033
  • ❤ 6
More from @standoff_bb_tips
  1. Oct 11, 2026Что скрывается в имени HTML-тега? Может быть, JavaScript? Gareth Heyes из PortSwigger пока…
  2. Oct 4, 2026Хочешь прокачать своего багбаунти-агента ❓ Обрати внимание на Model-Context-Protocol (MCP)…
  3. Oct 3, 2026Эксплуатация багов, связанных с ошибками в бизнес-логике 🤔 Логические баги — это когда ко…
  4. Sep 7, 2026Post #255
  5. Sep 5, 2026Мы накидали 6 разных вариантов атак для простого GET-запроса на редактирование профиля ⤵️…
  6. Aug 15, 2026Stored XSS через картинку: проверь Content-Type override 😵‍💫 Иногда загрузка изображений…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →