WPScan нашел 20 CVE, но ты не зна­ешь, почему все экс­пло­иты отка­зались взло­мать для тебя сайт? Давай под­робно и с при­мера­ми рас­ска­жу, что такое CVE, какие они быва­ют и почему одни CVE дела­ют тебя повели­телем сер­вера, а дру­гие боль­ше похожи на нас­мешку адми­на.

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.yml:

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: 5
volumes:
xwiki-data:
postgres-data:

Зай­ди на http://127.0.0.1:8080/ и нач­ни уста­нов­ку. Соз­дай адми­нис­тра­тора и перехо­ди к уста­нов­ке базовой кон­фигура­ции.

Вы­бери Standart Flavor. На экра­не уста­нов­ки он появ­ляет­ся не сра­зу, клик­ни в стро­ку поис­ка и подож­ди минуту. Ког­да появит­ся, выбери и нач­ни уста­нов­ку. Уста­нов­ка зай­мет минут 10–15. Но не оставляй мас­тер уста­нов­ки без вни­мания, пери­оди­чес­ки при­дет­ся жать Install и Continue.

Установка базовой конфигурации
Ус­танов­ка базовой кон­фигура­ции

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

XWiki установлена
XWiki уста­нов­лена

Вни­зу стра­ницы кра­сует­ся над­пись XWiki 15.10.10. Если бы это был не наш про­ект, то из нее мы бы узна­ли, для какой вер­сии искать CVE.

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

Пример окна Wappalyzer
При­мер окна Wappalyzer

Ес­ли информа­ции на сай­те нет и авто­мати­ка не помог­ла, можешь сам заг­лянуть в HTML-исходник. При­ложе­ния вро­де WordPress могут рас­кры­вать свою вер­сию в импортах js или css. Иног­да выруча­ют фай­лы вро­де change.log, readme.html, license.html и их вари­анты с рас­ширени­ем .txt.

Мы зна­ем, с чем работа­ем, поэто­му можем прис­тупить к поис­ку извес­тных уяз­вимос­тей. Начинать мож­но с поис­ка в Google. Вво­ди «xwiki 15.10.10 cve», «xwiki 15.10.10 poc», «xwiki 15.10.10 exploit» и тому подоб­ные зап­росы.

Результат поиска CVE в XWiki
Ре­зуль­тат поис­ка CVE в XWiki

Ес­ли наш­ли под­ходящую 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, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее

  • Подпишись на наc в Telegram!

    Только важные новости и лучшие статьи

    Подписаться

  • Подписаться
    Уведомить о
    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии