warning
Статья имеет ознакомительный характер и предназначена для специалистов по безопасности, проводящих тестирование в рамках контракта. Автор и редакция не несут ответственности за любой вред, причиненный с применением изложенной информации. Распространение вредоносных программ, нарушение работы систем и нарушение тайны переписки преследуются по закону.
CVE (Common Vulnerabilities and Exposures) — это справочник, в котором хранится информация обо всех публичных уязвимостях. В нем есть данные об уязвимостях в никому не нужных плагинах Drupal и CVE-2019-11927, которая описывает, как взломать WhatsApp одной картинкой. Там же лежит информация об уязвимостях с физическим доступом, например CVE-2026-0714 — уязвимость в доверенном модуле (TPM), подключенном по SPI-шине, в промышленных компьютерах Moxa UC-1200A. Она описывает возможность физической атаки на SPI-шину TPM. Там же — уязвимости всех операционных систем и еще много всего разного.

Ведет базу CVE компания MITRE Corporation на деньги правительства США через Cybersecurity and Infrastructure Security Agency (CISA). MITRE управляет системой CVE, регистрирует каждую уязвимость. Она отвечает за уникальные идентификаторы и базовое описание уязвимости. Идентификатор составляется по шаблону CVE-YYYY-ID, где YYYY — год обнаружения, а ID — порядковый номер.
Чтобы уязвимость обрела оценку риска, ссылки на другие ресурсы и прочую подробную информацию, к делу подключается National Institute of Standards and Technology (NIST). Данные NIST попадают в National Vulnerability Database (под National подразумевается США).
Из базы NIST CVE расползается по разным сайтам. Например, есть листинг CVE на GitHub, CVEFeed, VulnDB и прочие проекты. Каждый ресурс обогащает информацию о CVE. Апогей — сайты вроде ExploitDB, где публикуются эксплоиты для CVE, а также статьи, демонстрирующие эксплуатацию уязвимости.
www
Я для себя делаю проект CVE Radar — канал в Telegram с анонсами CVE. Подписывайся, если заинтересовало.
Как работать с CVE на практике
Давай посмотрим, как информация из CVE может пригодиться при пентесте. Я покажу атаку на приложение XWiki. Если хочешь повторить действия из статьи, тебе понадобится Docker.
Для начала собери тестовый проект с XWiki. Создай docker-compose.:
version: "3.8"services: xwiki: image: xwiki:15.10.10-postgres-tomcat container_name: xwiki-vuln ports: - "8080:8080" environment: - DB_HOST=postgres - DB_DATABASE=xwiki - DB_USER=xwiki - DB_PASSWORD=xwiki depends_on: postgres: condition: service_healthy volumes: - xwiki-data:/usr/local/xwiki postgres: image: postgres:15 container_name: xwiki-db environment: POSTGRES_DB: xwiki POSTGRES_USER: xwiki POSTGRES_PASSWORD: xwiki POSTGRES_INITDB_ARGS: "--encoding=UTF8" volumes: - postgres-data:/var/lib/postgresql/data healthcheck: test: ["CMD", "pg_isready", "-U", "xwiki"] interval: 10s timeout: 5s retries: 5volumes: xwiki-data: postgres-data:Зайди на http:// и начни установку. Создай администратора и переходи к установке базовой конфигурации.
Выбери Standart Flavor. На экране установки он появляется не сразу, кликни в строку поиска и подожди минуту. Когда появится, выбери и начни установку. Установка займет минут 10–15. Но не оставляй мастер установки без внимания, периодически придется жать Install и Continue.

Когда процесс завершится, откроется полноценное веб‑приложение.

Внизу страницы красуется надпись XWiki 15.10.10. Если бы это был не наш проект, то из нее мы бы узнали, для какой версии искать CVE.
Но не всегда веб‑приложения раскрывают свою версию. В таком случае придется идти на хитрости. Мне часто помогает расширение для браузера Wappalyzer. На большинстве сайтов оно неплохо справляется с определением стека технологий, в том числе с указанием конкретных версий. Правда, с XWiki не справилось.

Если информации на сайте нет и автоматика не помогла, можешь сам заглянуть в HTML-исходник. Приложения вроде WordPress могут раскрывать свою версию в импортах js или css. Иногда выручают файлы вроде change., readme., license. и их варианты с расширением ..
Мы знаем, с чем работаем, поэтому можем приступить к поиску известных уязвимостей. Начинать можно с поиска в Google. Вводи «xwiki 15.10.10 cve», «xwiki 15.10.10 poc», «xwiki 15.10.10 exploit» и тому подобные запросы.

Если нашли подходящую CVE, заглядываем на nist.gov, чтобы ознакомиться с описанием:
XWiki Platform — это универсальная вики-платформа, предоставляющая рантайм-сервисы для приложений, построенных поверх нее. Любой гость может удаленно выполнить произвольный код через запрос к SolrSearch. Это затрагивает конфиденциальность, целостность и доступность всей установки XWiki.
Для воспроизведения на экземпляре без входа в систему откройте
<host>/xwiki/bin/get/Main/SolrSearch?media=rss&text=%7D%7D%7D%7B%7Basync%20async%3Dfalse%7D%7D%7B%7Bgroovy%7D%7Dprintln%28"Hello%20from"%20%2B%20"%20search%20text%3A"%20%2B%20%2823%20%2B%2019%29%29%7B%7B%2Fgroovy%7D%7D%7B%7B%2Fasync%7D%7D%20
Если появляется вывод и заголовок RSS-ленты содержит строку Hello from search text:42, значит, экземпляр уязвим.
Уязвимость исправлена в версиях XWiki 15.10.11, 16.4.1 и 16.5.0RC1. Рекомендуется обновить систему.
Если обновление невозможно, можно отредактировать Main.SolrSearchMacros в файле SolrSearchMacros.xml на строке 955 и привести макрос rawResponse к виду, соответствующему макросу в macros.vm#L2824, указав тип содержимого application/xml, вместо прямого вывода содержимого RSS-ленты.
Из описания видно, что наша версия подвержена CVE-2025-24893. Уязвимость ведет к удаленному выполнению кода без какой‑либо аутентификации. Неудивительно, что CVE определена как критическая и имеет рейтинг опасности 9.8 (близкий к максимальному).
Продолжение доступно только участникам
Материалы из последних выпусков становятся доступны по отдельности только через два месяца после публикации. Чтобы продолжить чтение, необходимо стать участником сообщества «Xakep.ru».
Присоединяйся к сообществу «Xakep.ru»!
Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее
