Home » Sicurezza Wordpress » Falsificazione della richiesta lato server (SSRF)

Falsificazione della richiesta lato server (SSRF)

WordPress fornisce un set di funzioni di richiesta HTTP tramite la sua API HTTP.

Queste vengono utilizzate dagli sviluppatori di plugin e temi per effettuare richieste HTTP in uscita.

Esiste un set di funzioni “normali” che non hanno restrizioni integrate, insieme a un set di funzioni sicure corrispondenti che contengono restrizioni relative a host e protocollo.

Funzioni non sicure (nessuna restrizione URL)

Queste funzioni non limitano le richieste a destinazioni come IP interni o localhost. Gli sviluppatori che utilizzano queste funzioni devono implementare la propria convalida.

  • wp_remote_get()
  • wp_remote_post()
  • wp_remote_request()
  • wp_remote_head()

Funzioni sicure (con restrizioni host e protocollo):

Per ogni funzione di richiesta HTTP non sicura, esiste una funzione sicura.

Queste funzioni impediscono le richieste a localhost, intervalli IP privati (ad esempio: 192.168.x.x, 10.x.x.x, 172.16.x.x), indirizzi di loopback (ad esempio, 127.0.0.1), intervalli IPv6 privati e locali e schemi URL diversi da http:// o https://.

  • wp_safe_remote_get()
  • wp_safe_remote_post()
  • wp_safe_remote_request()
  • wp_safe_remote_head()

Individuazione delle vulnerabilità di falsificazione delle richieste lato server (SSRF)

I ricercatori dovrebbero cercare l’utilizzo delle funzioni wp_remote_*() per individuare le vulnerabilità SSRF.

// Vulnerable
$response = wp_remote_get( $_GET['url'] );
 
// Safe
$url = esc_url_raw( $_GET['url'] ); 
$response = wp_safe_remote_get( $url );

💡WordPress è consapevole del fatto che le funzioni wp_safe_remote_*() non bloccano le richieste all’intervallo link-local 169.254.0.0/16, spesso utilizzato dai provider di servizi cloud per i servizi di metadati.


Traduzione in italiano della WordPress Security Research di Wordfence

WordPress Security Architecture

Lascia un commento