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.

Lascia un commento
Devi essere connesso per inviare un commento.