PT-2024-12890 · Undefined · Undefined
Published
2024-05-22
·
Updated
2024-05-22
·
CVE-2023-40415
None
No severity ratings or metrics are available. When they are, we'll update the corresponding info on the page.
ChatGPT помог заработать $28 000 на 0-day.
Базовый XXE-пейлоад выглядит как-то так
]>
&xxe;
Можно залить файл с таким содержимым на сервер и, если у либы, которая его распарсит, включена поддержка внешних сущностей, на выходе мы получим содержимое /etc/passwd.
Это касается библиотек, но не браузеров. Если вы откроете нечто подобное у себя в Chrome, то ничего не сработает, т.к. в нем external entities отключены по дефолту.
Но выяснился забавный факт.
Помимо XML, современные браузеры поддерживают еще много форматов, например, XSL. Это старая спека, которая является надстройкой над XML со своими директивами.
О нем и о том, что там тоже можно объявлять внешние сущности, почему-то все забыли, но напомнил ChatGPT. Он подсказал, что это можно делать с помощью директивы, вроде
<xsl:copy-of select="document('file:///etc/passwd')"/>
которая подгрузит содержимое, вопреки всем запретам.
Поэтому полная цепочка выглядит так:
- Создаем XSL пейлоад с функцией document()
- Импортируем полученное содержимое как внешнюю сущность в XML
- Готовый XML-пейлоад вставляем в SVG-картинку и используем по назначению ;)
💰 Выплаты
Apple (CVE-2023-40415): $25 000
Google (CVE-2023-4357): $3 000
Found an issue in the description? Have something to add? Feel free to write us 👾
Related Identifiers
Affected Products
Undefined