Forwarded from Cybred
ChatGPT помог заработать $28 000 на 0-day.
Базовый XXE-пейлоад выглядит как-то так
Можно залить файл с таким содержимым на сервер и, если у либы, которая его распарсит, включена поддержка внешних сущностей, на выходе мы получим содержимое
Это касается библиотек, но не браузеров. Если вы откроете нечто подобное у себя в Chrome, то ничего не сработает, т.к. в нем
Но выяснился забавный факт.
Помимо XML, современные браузеры поддерживают еще много форматов, например, XSL. Это старая спека, которая является надстройкой над XML со своими директивами.
О нем и о том, что там тоже можно объявлять внешние сущности, почему-то все забыли, но напомнил ChatGPT. Он подсказал, что это можно делать с помощью директивы, вроде
которая подгрузит содержимое, вопреки всем запретам.
Поэтому полная цепочка выглядит так:
1. Создаем XSL пейлоад с функцией
2. Импортируем полученное содержимое как внешнюю сущность в
3. Готовый XML-пейлоад вставляем в SVG-картинку и используем по назначению ;)
💰 Выплаты
Apple (CVE-2023-40415):
Google (CVE-2023-4357):
Базовый XXE-пейлоад выглядит как-то так
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE foo [ <!ENTITY xxe SYSTEM "file:///etc/passwd"> ]>
<stockCheck><productId>&xxe;</productId></stockCheck>Можно залить файл с таким содержимым на сервер и, если у либы, которая его распарсит, включена поддержка внешних сущностей, на выходе мы получим содержимое
/etc/passwd.Это касается библиотек, но не браузеров. Если вы откроете нечто подобное у себя в Chrome, то ничего не сработает, т.к. в нем
external entities отключены по дефолту.Но выяснился забавный факт.
Помимо XML, современные браузеры поддерживают еще много форматов, например, XSL. Это старая спека, которая является надстройкой над XML со своими директивами.
О нем и о том, что там тоже можно объявлять внешние сущности, почему-то все забыли, но напомнил ChatGPT. Он подсказал, что это можно делать с помощью директивы, вроде
<xsl:copy-of select="document('file:///etc/passwd')"/>которая подгрузит содержимое, вопреки всем запретам.
Поэтому полная цепочка выглядит так:
1. Создаем XSL пейлоад с функцией
document()2. Импортируем полученное содержимое как внешнюю сущность в
XML3. Готовый XML-пейлоад вставляем в SVG-картинку и используем по назначению ;)
💰 Выплаты
Apple (CVE-2023-40415):
$25 000Google (CVE-2023-4357):
$3 000Поделись с друзьями на PHDays 2
#phd2
Карта киберфестиваля
➡️ PDF-версия
➡️ Интерактивная версия для открытой части
➡️ Интерактивная версия для закрытой части
😮 Где найти программу
➡️ Научпоп-трек
➡️ Технические и бизнес-треки
💻 Где смотреть трансляции онлайн
➡️ Научпоп-трек
➡️ Технические и бизнес-треки
P.S. этот пост будет в закрепе и обязательно делитесь со всеми, чтобы не теряться :)
🌚 @poxek
#phd2
Карта киберфестиваля
P.S. этот пост будет в закрепе и обязательно делитесь со всеми, чтобы не теряться :)
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3
С многими увиделся, но с бо́льшей частью не увиделся, пока что. Сейчас решаю активность на PHD, поэтому пока что я бегаю туда сюда и меня достаточно сложно поймать
🔥9😁3