Apache-Solr-RCE-via-Velocity-template
Link di riferimento
Causa della vulnerabilità:
- Quando un attaccante può accedere direttamente alla console Solr, può modificare il file di configurazione del nodo inviando una richiesta POST simile a /节点名/config.
- Apache Solr integra per impostazione predefinita il plugin VelocityResponseWriter. L'opzione params.resource.loader.enabled nei parametri di inizializzazione del plugin controlla se consentire al caricatore di risorse dei parametri di specificare un template nei parametri di richiesta di Solr; il valore predefinito è false. Quando params.resource.loader.enabled è impostato su true, all'utente viene consentito di specificare il caricamento delle risorse correlate attraverso i parametri della richiesta, il che significa che un attaccante può eseguire comandi sul server costruendo una richiesta dannosa.
Riproduzione della vulnerabilità: Vulnerabilità ricorrente
Metodo 1: Rilevamento manuale
Accedi a http://x.x.x.x:8983/solr/#/ per entrare nell'interfaccia principale, fai clic su Core Selector a sinistra per visualizzare il nome della collezione.

Utilizzare i seguenti due payload
-
Modificare le impostazioni della collezione

-
Esecuzione dei comandi
Comando eseguito con successo!
Metodo 2: Rilevamento tramite script


Raccomandazioni per la correzione della vulnerabilità:
- Si consiglia di garantire che le impostazioni di rete consentano la comunicazione con Solr solo al traffico affidabile.
Si consiglia di garantire che le impostazioni di rete consentano a solo traffico affidabile di comunicare con Solr.
- Impostare params.resource.loader.enabled su false, quindi impostare il file di configurazione come sola lettura.
Impostare params.resource.loader.enabled su false, quindi impostare il file di configurazione come sola lettura.
Per impostazione predefinita, params.resource.loader.enabled è false e non esiste un file di configurazione. Se si desidera modificarne il valore corrispondente o forzarne la modifica, è necessario un file di configurazione.
Per impostazione predefinita, params.resource.loader.enabled è false. Non esiste un file di configurazione. Se si desidera modificare il valore corrispondente o forzare la modifica, è necessario configurare il file.
Per impostazione predefinita, il file di configurazione del nodo configoverlay.json ha permessi di lettura e scrittura.
Per impostazione predefinita, il file di configurazione del nodo configoverlay.json è il file di configurazione con permessi di lettura e scrittura.
Percorso del file di configurazione: (in base alla situazione effettiva)
Percorso: (a seconda della situazione effettiva)
./example/example-DIH/solr/db/conf/configoverlay.json:
./example/example-DIH/solr/mail/conf/configoverlay.json:
./example/example-DIH/solr/solr/conf/configoverlay.json:
Impostare params.resource.loader.enabled su false in tutti i configoverlay.json. Se non esiste configoverlay.json, si consiglia di crearlo manualmente e di impostarne i permessi su sola lettura.
Impostare tutti i params.resource.loader.enabled in configoverlay.json su false. Se non c'è configoverlay.json, si consiglia di crearne uno manualmente e di impostarne i permessi su sola lettura.
Descrizione dell'EXP:
- È necessario cercare i nodi e scorrerli per determinare quali nodi possono ricevere POST.
Dobbiamo cercare i nodi e invertire quali potrebbero essere POSTati.
- È necessario determinare la versione del sistema operativo, inserire il comando ed eseguire l'operazione.
Inoltre, dobbiamo determinare la versione del sistema operativo e decidere di inserire il comando per eseguire l'operazione.