Open Source im professionellen Einsatz

Java/Python: Probleme mit FTP

Eine Sicherheitslücke in der Java-Implementation des FTP-Clients hat zur Folge, dass ein entfernter Angreifer Befehle auf FTP- und SMTP-Servern ausführen kann. Das Problem besteht darin, dass der FTP-Code in Java nicht korrekt implementiert ist. Der eigentlichte FTP-Client Programmcode findet sich in »sun.net.ftp.impl.FtpClient«. Damit kann eine Java-Applikation sehr einfach FTP-Verbindungen aufbauen. Der Anwender muss lediglich eine URL der Art »ftp://user:password@host:port/file.ext« übergeben.

In dieser Implementierung findet sich allerdings ein Programmierfehler beim Verarbeiten des FTP-Benutzernamens. Laut RFC 959 darf dieser nämlich keine <CR>- und <LF>-Sequenzen enthalten. Die werden von der Java-Routine allerdings nicht herausgefiltert. Dadurch kann ein Angreifer via '%0D%0A' in der URL den USER- oder PASS-Befehl abbrechen. Anschließend kann er dann beliebige FTP-Befehle ausführen.

In dem Report zu dieser Schwachstelle wird auch darauf hingewiesen, dass ein Angreifer damit Mails verschicken kann, indem er damit einen SMTP-Server angreift. Grund hierfür ist, dass die SMTP- und FTP-Protokolle sehr ähnlich aufgebaut sind. D.h. die obige Attacke kann genauso auch gegen einen SMTP-Server durchgeführt werden. Der Angreifer könnte beipielsweise folgende Daten an einen SMTP-Server über den Java-Client schicken:

ftp://a%0D%0AEHLO%20a%0D%0AMAIL%20FROM%3A%3Ca%40example.org%3E%0D%0ARCPT%20TO%3A%3Calech%40alech.de%3E%0D%0ADATA%0D%0AFrom%3A%20a%40example.org%0ATo%3A%20alech%40alech.de%0ASubject%3A%20test%0A%0Atest!%0A%0D%0A.%0D%0AQUIT%0D%0A:a@shiftordie.de:25/a

Dies würde dann eine Verbindung zum SMTP-Server aufbauen und folgende Befehle ausführen:

USER a<CR><LF>
EHLO a<CR><LF>
MAIL FROM:<a href="mailto:a@example.org" class="moz-txt-link-rfc2396E"><a@example.org></a><CR><LF>
RCPT TO:<a href="mailto:alech@alech.de" class="moz-txt-link-rfc2396E"><alech@alech.de></a><CR><LF>
DATA<CR><LF>
From: <a href="mailto:a@example.org" class="moz-txt-link-abbreviated">a@example.org</a><LF>
To: <a href="mailto:alech@alech.de" class="moz-txt-link-abbreviated">alech@alech.de</a><LF>
Subject: test<LF>
<LF>test!<LF><CR><LF>.
<CR><LF>QUIT<CR><LF>

Besonders kritisch ist diese Schwachstelle, wenn die Attacke als XML External Entity (XXE) Angriff durchgefÜhrt wird und der Server fÜr das XML-Parsing mit einem internen Mail-Server verbunden ist. Sollte dieser Mail-Server keine Spam- oder Malware-Filter haben, so kann der Angreifer hier beliebige Dateien über diesen Server verschicken. Neben Java ist auch die Python-Implementation betroffen.

comments powered by Disqus

Stellenmarkt

Artikelserien und interessante Workshops aus dem Magazin können Sie hier als Bundle erwerben.