
Быстрый инструмент для перечисления плагинов WordPress
«Зачем сканировать вслепую, если WordPress сам себя раскрывает?»
Быстрый сканер плагинов и тем WordPress, который обнаруживает установленные плагины через перечисление REST API и темы — через анализ HTML, а затем сопоставляет их с известными уязвимостями. Более 5000 плагинов обнаруживаются без перебора, ещё тысячи — с его помощью.
Начиная с 9 марта 2026 года Wordfence прекратил поддержку своего API v2. Во всех версиях WPProbe до v0.10.16 функциональность update-db не работает. Вам необходимо обновить WPProbe.
По умолчанию wpprobe update-db загружает готовую базу данных из этого репозитория (обновляется каждые 2 часа через CI), поэтому API-ключ не требуется. Если вы хотите загружать данные напрямую из Wordfence, вы можете дополнительно настроить бесплатный API-ключ:
--api-keygo install github.com/Chocapikk/wpprobe@latest
wpprobe update-db
wpprobe scan -u https://example.com
wpprobe scan -u https://example.com --mode stealthy
wpprobe scan -u https://example.com --mode bruteforce
wpprobe scan -u https://example.com --mode hybrid
# Kali Linux (включён в kali-rolling)
sudo apt install wpprobe
# Go (требуется 1.22+)
go install github.com/Chocapikk/wpprobe@latest
# Nix
nix-shell -p wpprobe
# Docker
docker run -it --rm wpprobe scan -u https://example.com
# Из исходников
git clone https://github.com/Chocapikk/wpprobe && cd wpprobe && go build -o wpprobe
# Монтирование текущего каталога для входных/выходных файлов
docker run -it --rm -v $(pwd):/data wpprobe scan -f /data/targets.txt -o /data/results.csv
# Сохранение баз данных уязвимостей
docker run -it --rm \
-v $(pwd):/data \
-v wpprobe-config:/config \
wpprobe scan -f /data/targets.txt -o /data/results.json
# Обновление баз данных
docker run -it --rm \
-v wpprobe-config:/config \
-e WORDFENCE_API_KEY=your_key \
-e WPSCAN_API_TOKEN=your_token \
wpprobe update-db
# Одна цель
wpprobe scan -u https://example.com
# Несколько целей с многопоточностью
wpprobe scan -f targets.txt -t 20
# Дополнительные параметры
wpprobe scan -u https://example.com \
--header "User-Agent: CustomAgent" \
--proxy http://proxy:8080 \
--rate-limit 10 \
--no-check-version
# Форматы вывода
wpprobe scan -u https://example.com -o results.csv
wpprobe scan -u https://example.com -o results.json
# Обновление баз данных (для Wordfence требуется бесплатный API-ключ, для WPScan — токен Enterprise API)
wpprobe update-db --api-key your_wordfence_key
# Или используйте переменную окружения
export WORDFENCE_API_KEY=your_key_here
wpprobe update-db
# Поиск уязвимостей
wpprobe search --cve CVE-2024-1234
wpprobe search --plugin woocommerce
wpprobe search --severity critical
wpprobe search --auth Unauth
wpprobe search --title "SQL Injection" --details
# Статистика базы данных
wpprobe list
Задайте WORDFENCE_API_KEY для обновления базы данных Wordfence (бесплатно). Задайте WPSCAN_API_TOKEN для обновления базы данных WPScan (только тарифный план Enterprise).
wpprobe update
Самообновляются только бинарные файлы, установленные из релиза. Сборка из исходников обычно опережает последний релиз, поэтому её замена стала бы понижением версии: вместо этого пересоберите её из репозитория или передайте --force, чтобы установить релизный бинарный файл в любом случае.
При запуске WPProbe проверяет последний опубликованный релиз, чтобы пометить баннер. Ответ кэшируется на 24 часа, а проверку можно полностью отключить:
export WPPROBE_NO_UPDATE_CHECK=1
Режим stealthy запрашивает открытые маршруты REST API (?rest_route=/) и сопоставляет обнаруженные конечные точки с предварительно скомпилированной базой данных известных сигнатур плагинов. Он также обнаруживает активные темы, анализируя ссылки wp-content/themes/ в HTML-коде страницы, и получает их версию из style.css. Это создаёт минимальное количество запросов и позволяет избежать обнаружения WAF.
Режим bruteforce проверяет каталоги плагинов напрямую с помощью GET-запросов. Ответ 403 подтверждает наличие плагина (листинг каталога запрещён). Ответ 200 проверяется на наличие readme.txt в листинге каталога, чтобы избежать ложных срабатываний на экземплярах WordPress, которые возвращают 200 для всех путей.
Режим hybrid объединяет оба подхода: сначала stealthy для малошумного обнаружения, затем bruteforce для оставшихся плагинов. Темы всегда обнаруживаются через HTML независимо от режима.
Обнаруженные плагины и темы сопоставляются с известными CVE из баз данных Wordfence и WPScan с сопоставлением диапазонов версий для выявления уязвимых установок.
CSV:
URL,Plugin,Version,Severity,AuthType,CVEs,CVE Links,CVSS Score,CVSS Vector,Title
http://example.com,give,2.20.1,critical,Unauth,CVE-2025-22777,https://www.cve.org/CVERecord?id=CVE-2025-22777,9.8,CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H,GiveWP <= 3.19.3 - Unauthenticated PHP Object Injection
Вывод JSON всегда представляет собой массив с одним объектом на каждую просканированную цель, поэтому один файл остаётся корректным независимо от того, сканируете ли вы один URL или несколько с помощью -f.
JSON:
[
{
"url": "http://example.com",
"plugins": {
"give": [
{
"version": "2.20.1",
"severities": [
{
"critical": [
{
"auth_type": "Unauth",
"vulnerabilities": [
{
"cve": "CVE-2025-22777",
"cve_link": "https://www.cve.org/CVERecord?id=CVE-2025-22777",
"title": "GiveWP <= 3.19.3 - Unauthenticated PHP Object Injection",
"cvss_score": 9.8,
"cvss_vector": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H"
}
]
}
]
}
]
}
],
"wordpress-seo": [
{
"version": "27.1.1"
}
]
}
}
]
Вклад приветствуется. Пожалуйста, откройте issue или отправьте pull request.
Лицензия MIT — подробности см. в файле LICENSE.
Данные об уязвимостях получены из Wordfence Intelligence, предоставленного Defiant, Inc. Copyright (c) Defiant, Inc. Все права защищены. Готовая база данных, публикуемая в релизе db этого репозитория, является обработанной копией этих данных и распространяется по лицензии, предоставленной в Условиях использования Wordfence Intelligence. Любая создаваемая вами копия должна воспроизводить указание авторских прав Defiant, Inc. и эту лицензию, обе из которых находятся в NOTICE и записываются рядом с базой данных на диске при выполнении update-db.
WPProbe не аффилирован с Defiant, Inc., не одобрен и не спонсируется ею.
Разработано @Chocapikk.
| Режим | Метод | Скрытность | Покрытие |
|---|
stealthy (по умолчанию) | Сопоставление конечных точек REST API + обнаружение тем по HTML | Высокая | 5000+ плагинов + темы |
bruteforce | Прямые проверки каталогов | Низкая | 10k+ плагинов |
hybrid | Сначала stealthy, затем bruteforce | Средняя | Максимальное |
| Переменная | Описание |
|---|
WORDFENCE_API_KEY | API-ключ Wordfence для обновления базы данных (бесплатно, получить здесь) |
WPSCAN_API_TOKEN | Токен WPScan Enterprise API для обновления базы данных |
HTTP_PROXY / HTTPS_PROXY / ALL_PROXY | Конфигурация прокси |
NO_PROXY | Правила обхода прокси |