Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
CVE-2019-9673 — Writeup | Kitploit
Инструменты/GitHubGitHub/mgrube/cve-2019-9673
Vulnerability AnalysisExploitationIDS/IPS EvasionWeb Application ExploitationPhishingSocial Engineering
GitHubmgrube/cve-2019-9673

CVE-2019-9673

Writeup

Репозиторий
417 лет назадЕщё не проверено

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

CVE-2019-9673: Уязвимость фильтра контента Freenet

ПРИМЕЧАНИЕ: Я полностью раскрыл эту ошибку команде Freenet и работал с ними над проверкой их исправления. Исправление уже развернуто в последней версии Freenet.

Недавно я обнаружил уязвимость в безопасности Freenet, которая может позволить злоумышленнику деанонимизировать цель или отправлять вредоносные документы через Freenet.

Воздействие

Эта уязвимость затрагивает пользователей Freenet, использующих Firefox в качестве браузера. Она позволяет деанонимизацию и другое вредоносное поведение на компьютере пользователя. Она присутствует во всех версиях до 1483 включительно.

Эксплойт

Этот эксплойт работает, используя разрыв между Firefox и Freenet в обработке MIME-типов. Freenet поставляется с фильтрами для многих типов контента – было приложено много усилий, чтобы гарантировать, что только правильно сформированный и не содержащий скриптов контент может быть отображен без ряда предупреждений пользователю.

Freenet в целом хорошо справляется с обработкой данных так, как нужно, и позволяет пользователю указать, если он хочет обрабатывать их иным способом.

Firefox, с другой стороны, немного более нюансирован в том, как он определяет MIME-тип файла. В частности, как описано здесь. Большая часть процесса, описанного на этой странице, находится вне контроля злоумышленника, особенно если он должен атаковать через Freenet. Однако одна вещь, которая находится под контролем злоумышленника, – это MIME-тип вставляемых данных. Когда данные вставляются в сеть Freenet, пользователь может указать MIME-тип – когда это поле оставлено пустым, данные обрабатываются как application/octet-stream и получают все надлежащие предупреждения.

Однако, переходя к разделу HTTP документации Mozilla, мы видим, что Firefox на самом деле делает свои собственные предположения о MIME-типе данных, когда определенные условия не выполняются приложением, которое обслуживает контент. В частности, когда заголовок Content-Encoding не отправляется приложением, Firefox фактически «нюхает» контент, чтобы решить, что с ним делать. Если первый блок данных не является текстовым, Firefox будет обрабатывать файл как MIME-тип, указанный расширением.

Оказывается, Freenet не отправлял этот заголовок в своих ответах, что позволяет нам превратить это в нечто пригодное для использования. Поскольку наши данные могут быть вставлены как MIME-тип text/plain, который, очевидно, не получает сложной фильтрации, но могут быть доставлены как любой MIME-тип, указанный расширением файла, теперь у нас есть способ доставить нефильтрованный HTML-документ (или PDF, или .docx...). Это серьезно, потому что обычно весь опасный контент рекомендуется загружать в папку или временное пространство и открывать вне браузера.

Демонстрация

Это короткое видео работы эксплойта – в данном случае для доставки нефильтрованного HTML-файла.

Freenet Filter Bypass

Для работающего примера установите 1483 или более раннюю версию и перейдите по адресу:

http://127.0.0.1:8888/SSK@Xv~K9QDJQTjy4x8jOO8rfqK42JDliBes4GKS0RLLcdA,dCD8gDm0c1-JwuDAx9ENqZbGWU3BSmje0XOaMoc6iFw,AQACAAE/astley.html

Для тех, кто хочет поиграть дома, вы можете получить самую последнюю уязвимую версию Freenet здесь.

Сценарий атаки

Итак, как мы можем использовать это в реальном мире?

Оказывается, если вы ссылаетесь на свой вредоносный контент внутри Freenet на странице, которую уже просматривает пользователь, Freenet позаботится о том, чтобы обработать файл как тип, указанный его расширением. Freenet увидит, что наш первый бит данных является двоичным, и предупредит пользователя, что наш файл вредоносен.

:(

Это означает, что если мы хотим, чтобы наша цель просмотрела нашу вредоносную страницу с JS, мы должны ссылаться на нее извне. На самом деле это нормально, потому что самые популярные системы обмена сообщениями Freenet не работают через веб-прокси Freenet.

Если, например, демонстрационный URI из этой статьи был бы связан внутри FMS, никакой дополнительной проверки не было бы, и мы могли бы запустить нашу полезную нагрузку.

Все, что потребовалось бы для деанонимизации ряда пользователей Freenet, – это создать контент с интересным заголовком, вставить файл с первым блоком данных в виде двоичных данных, а затем создать убедительную веб-страницу, которая молча сообщает IP-адрес и активность в фоновом режиме. Комбинируйте это с набором инструментов, таким как BeEF, и вы получите интересные возможности.

Мы, конечно, также можем использовать это как вектор для доставки вредоносных PDF, .docx или других файлов и получить более постоянную точку опоры на машине пользователя.

Исправление

Исправление этой ошибки довольно простое – отныне FProxy всегда будет передавать HTTP-заголовок Content-Encoding при доставке контента. Этот заголовок сообщает браузеру Firefox обрабатывать MIME-типы явно, как определено FProxy. В результате данные типа text/plain будут всегда отображаться как обычный текст и не обрабатываться как любой другой MIME-тип.

Заключение

Эта ошибка, в общем и целом, была довольно простой – но она имела возможность существенно повлиять на функциональность Freenet. Проверка MIME-типов действительно важна, и главный урок, который можно извлечь из этой ошибки, заключается в том, что MIME-типы не всегда обрабатываются единообразно при передаче данных из одной программы в другую.

TL;DR

Просто вставьте некоторые данные в Freenet с MIME-типом text/plain, а первый блок должен содержать только двоичные данные. Firefox обработает их как тип, указанный расширением файла, и они будут доставлены пользователю напрямую, вместо того чтобы быть отфильтрованными Freenet. Отправляйте своим жертвам через FMS или Frost. Собирайте их IP-адреса или заставляйте их запускать двоичную полезную нагрузку. Профит!

Скачать инструмент