
Эксплойт-доказательство концепции для CVE-2015-9357: хранимый XSS в парсере смайликов WordPress, обходящий wp_kses, связывающий подделку nonce для создания учетных записей администратора. Только для образовательных целей.
Хранимая XSS в парсере смайликов/эмотиконов WordPress, создание учётной записи администратора через подделанный nonce-запрос.
Вырывается из контекста атрибута <a href> через regex для смайликов, помещая JS в обработчик onerror. Тег <script> не требуется, фильтрация wp_kses на затрагиваемом поле не спасает.
Цепочка: отправьте payload в любое поле, к которому применяется преобразование смайлов, администратор просматривает его, XSS срабатывает в его сессии, извлекает nonce создания пользователя из user-new.php, отправляет запрос на создание новой учётной записи администратора, подтвердите входом.
Только для лабораторного/учебного использования. Требуется, чтобы целевое поле действительно применяло конвертацию смайлов WordPress; зависит от темы/плагина.
Первоначальное раскрытие уязвимости: https://blog.sucuri.net/2015/10/security-advisory-stored-xss-in-akismet-wordpress-plugin.html
python3 CVE-2015-9357.py -t https://target -l LHOST -p LPORT \
--endpoint https://target/wp-admin/admin-ajax.php \
--field message --action <ajax_action> --nonce <nonce> \
--data "name=a,[email protected],phone=a"
--endpoint / --field зависят от того, где реально находится уязвимый ввод (комментарии, контактная форма и т.п.), сначала найдите его вручную.
При успехе вывод: учётные данные администратора (pwned / Password123!) и URL wp-admin.