tgoop.com/poxek/4758
Last Update:
Команда Doyensec поделилась исследованием, раскрывающим кейсы эксплуатации слабых мест проверок для выполнения сложных атак, включая CSPT, CSRF и XSS.
JSON — популярный формат передачи данных, который можно использовать для обхода проверок загрузки. Многие приложения проверяют загружаемые файлы, используя библиотеки и инструменты для проверки MIME-типа и структуры. Однако правильно сформированный JSON может пройти эти проверки и быть обработан на стороне клиента.
Исследование показывает, как создать файл, который будет распознаваться как PDF, но при этом оставаться валидным JSON для клиента:
• mmmagic
(обычно используется в приложениях Node.js для определения типов файлов): достаточно поместить заголовок %PDF
в первые 1024 байта.
• pdflib
: Использование допустимой структуры PDF с минимальными корректировками (например, замена %0A
на %20
).file
Команда file
ограничивает количество байтов для анализа. Это ограничение можно использовать, добавив в файл большое количество пробелов. Проверка файла завершится ошибкой, и файл классифицируется как PDF.
Создание JSON-файла с магическими байтами WEBP
в нужном месте позволяет пройти проверку формата изображения:
{"aaa": "WEBP", "_id": "../../../../CSPT?"}
Что использовать:
• Создание файлов, которые валидны сразу для нескольких форматов.
• Анализ исходного кода библиотек проверки (например, mmmagic, pdflib, file-type).
• Эксплуатация технических ограничений, таких как лимиты чтения данных.
Где применимо:
• CSPT → обход путей на стороне клиента.
• CSRF → выполнение межсайтовых запросов.
• XSS → внедрение вредоносного JavaScript.