Продукты «Хакера»

  • Ежеквартальный «Хакер» #3

    Ежеквартальный «Хакер» #3

    Лучшие статьи квартала на бумаге

    2 000 ₽

    Заказать журнал
  • Годовая подписка на Xakep.ru

    Годовая подписка на Xakep.ru

    Полный доступ к статьям и архиву выпусков

    6 000 ₽ в год

    Подписаться
  • «Пентест WEB» для начинающих

    «Пентест WEB» для начинающих

    Совместный курс «Хакера» и лаборатории «Хаксет»

    7 000 ₽

    Купить курс
  • Спецвыпуск «Хакера» #4

    Спецвыпуск «Хакера» #4

    Лучшие статьи за 2021–2022 годы на бумаге

    2 000 ₽

    Заказать журнал
Впер­вые за десять лет най­ден путь пря­мого взло­ма WordPress без пла­гинов. Вла­дель­цы сай­тов тря­сут­ся, коман­да WP стро­чит пат­чи, хакеры ищут новые век­торы ата­ки. А мы спо­кой­но и дотош­но раз­бира­емся, как работа­ет ужас­ный wp2shell.

Для тес­тов возь­мем готовую машину для wp2shell из репози­тория FullHunt. Это самый пол­ный репози­торий, пос­вящен­ный рас­смат­рива­емым уяз­вимос­тям. Там же лежит мак­сималь­но пол­ный экс­пло­ит с реали­заци­ей раз­ных спо­собов ата­ки, вклю­чая соз­дание поль­зовате­ля через бэк­дор‑скрипт.

warning

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

Прос­той запуск лабы:

git clone https://github.com/fullhunt/wp2shell-scan.git
cd wp2shell-scan
cd testbed
docker compose up --build

За­тем откры­ваем в бра­узе­ре http://localhost:8080/ и уста­нав­лива­ем WordPress. Исполь­зуем любые дан­ные, глав­ное, что­бы уста­нов­ка была завер­шена.

Пос­ле уста­нов­ки у тебя запус­тятся два кон­тей­нера, меж­ду которы­ми есть общий раз­дел. Это нуж­но, что­бы поль­зователь базы дан­ных мог писать нап­рямую в WordPress. Но это­го недос­таточ­но. База дан­ных работа­ет от име­ни собс­твен­ного поль­зовате­ля, у которо­го нет прав на запись в /var/www/html, а для тес­тов она нуж­на. Выпол­ним

docker exec testbed-wordpress-1 chmod 777 /var/www/html/

Ес­ли имя кон­тей­нера отли­чает­ся от testbed-wordpress-1, не забыва­ем под­ста­вить свое.

 

CVE-2026-63030

CVE-2026-63030 — это воз­можность вме­шать­ся в мар­шру­тиза­цию на эндпо­инте REST API, который пакет­но обра­баты­вает зап­росы:

/wp-json/batch/v1
/?rest_route=/batch/v1

Ата­кующий выс­тра­ивает зап­рос так, что­бы запутать про­цес­сы валида­ции и фак­тичес­кого выпол­нения. Под капотом есть три мас­сива:

  • $requests — исходный спи­сок зап­росов. Содер­жит объ­екты типа WP_REST_Request или WP_Error, если объ­ект некор­рек­тный. На его осно­ве фор­миру­ются сле­дующие мас­сивы;
  • $validation — резуль­таты валида­ции каж­дого отдель­ного зап­роса из пакета. Каж­дый эле­мент — это либо true, либо WP_Error;
  • $matches — готовый спи­сок методов для выпол­нения. Хра­нит путь API, наз­вание фун­кции‑кол­бэка и аргу­мен­ты для выпол­нения.

Пред­полага­ется, что $validation и $matches син­хро­низи­рова­ны меж­ду собой. Дви­жок WP срав­нива­ет эле­мен­ты по индексу. Если в $validation зна­чение true, то выпол­няет­ся соот­ветс­тву­ющий кол­бэк из $matches.

$validation -> $matches
true -> callback1
WP_Error -> callback2
true -> callback3

Ес­ли нет, то WP воз­вра­щает ошиб­ку и ничего страш­ного не про­исхо­дит. Но в реаль­нос­ти хакер может добить­ся сме­щения индексов, отпра­вив неп­равиль­ный URL, и ито­говые мас­сивы будут выг­лядеть так:

$validation -> $matches
WP_Error -> callback1
true -> callback3
WP_Error ->

Продолжение доступно только участникам

Материалы из последних выпусков становятся доступны по отдельности только через два месяца после публикации. Чтобы продолжить чтение, необходимо стать участником сообщества «Xakep.ru».

Присоединяйся к сообществу «Xakep.ru»!

Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее

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

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

    Подписаться

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