Relative Path Confusion

Relative-Path-Confusion

© Copyright Shutterstock / Outflow_Designs

Was ist Relative Path Confusion?

Eingaben, die sich auf den Steuerungsfluss oder den Datenfluss eines Programms auswirken können, werden nicht oder fehlerhaft überprüft.

Wenn eine Software die Eingabe nicht ordnungsgemäß überprüft, kann ein Angreifer eine Eingabe so erstellen, das die Anwendung dies in dieser Form nicht erwartet. Dies führt dazu, dass Teile des Systems unbeabsichtigte Eingaben erhalten, was zu einem veränderten, willkürlichen Steuerung einer Ressource oder Codes führen kann. Diese Schwachstelle wird während der Implementierung einer architektonischen Sicherheitstaktik verursacht.

Beschreibung

Bei der Relative Path Confusion testet der Scanner, ob der Webserver so konfiguriert ist, dass Antworten auf mehrdeutige URLs so bereitgestellt werden, dass diese mit großer Wahrscheinlichkeit zu Irritationen bzgl. des korrekten ‘relativen Pfad’ der URL führen. Sofern die Ressourcen (CSS, Bilder, usw.) Verweise in der Antwort sind, die relative anstelle von absoluten URLs verwenden. Wenn bei einem Angriff der Webbrowser die Antwort ‘Cross-Content’ auf eine zulässige Art und Weise analysiert oder dazu verleitet werden kann, die ‘Cross-Content’-Antwort mit Techniken wie dem Framing zu analysieren, kann der Webbrowser getäuscht werden HTML als CSS (oder andere Inhaltstypen) zu interpretieren, was zu einer XSS-Sicherheitsanfälligkeit führt.

Wenn ein Programmierer der Meinung ist, dass ein Angreifer bestimmte Eingaben nicht ändern kann, führt der Programmierer möglicherweise keine Überprüfung der Eingaben durch, obwohl Eingaben mit einem Proxy oder einem benutzerdefinierten Programm geändert werden können. In einer Client-Server-Architektur kann der Programmierer davon ausgehen, dass clientseitige Sicherheitsprüfungen nicht umgangen werden können, selbst wenn ein benutzerdefinierter Client geschrieben werden könnte, der diese Prüfungen überspringt.

Tipp

Überprüfen Sie die Sicherheit Ihrer Website mit unserem kostenlosen Security Crawler oder mit der OSG Performance Suite Free Version.

Lösung

Verwenden Sie ein Eingabevalidierungsframework wie Struts oder die OWASP ESAPI Validation-API.
Verstehen Sie alle potenziellen Bereiche, in denen nicht vertrauenswürdige Eingaben Ihre Software eingeben können: Parameter oder Argumente, Cookies, alles, was aus dem Netzwerk gelesen wird, Umgebungsvariablen, Reverse-DNS-Lookups, Abfrageergebnisse, Anforderungsheader, URL-Komponenten, E-Mail, Dateien, Dateinamen, Datenbanken sowie alle externen Systeme, die der Anwendung Daten zur Verfügung stellen. Beachten Sie, dass solche Eingaben indirekt durch API-Aufrufe abgerufen werden können.
Verwenden Sie eine Whitelist mit akzeptablen Eingaben, die streng den Spezifikationen entsprechen. Verwerfen Sie Eingaben, die nicht genau den Spezifikationen entsprechen, oder wandeln Sie sie in etwas um, das dies tut.

Berücksichtigen Sie bei der Eingabevalidierung alle potenziell relevanten Eigenschaften, einschließlich Länge, Eingabetyp, den gesamten zulässigen Wertebereich, fehlende oder zusätzliche Eingaben, Syntax, Konsistenz in verwandten Feldern und die Einhaltung von Geschäftsregeln.

Verlassen Sie sich nicht ausschließlich auf die Suche nach schädlichen oder fehlerhaften Eingaben (d.h. Verlassen Sie sich nicht auf eine Blacklist). Bei einer Blacklist wird wahrscheinlich mindestens eine unerwünschte Eingabe übersehen, insbesondere wenn sich die Code-Umgebung ändert. Dadurch können Angreifer genügend Spielraum haben, um die beabsichtigte Validierung zu umgehen. Blacklists können jedoch hilfreich sein, um potenzielle Angriffe zu erkennen oder um festzustellen, welche Eingaben so fehlerhaft sind, dass sie völlig abgelehnt werden sollten.

Wenn Ihre Anwendung Daten aus mehreren Quellen kombiniert, führen Sie die Validierung durch, nachdem die Quellen kombiniert wurden. Die einzelnen Datenelemente können den Validierungsschritt bestehen, verletzen jedoch die beabsichtigten Beschränkungen, nachdem sie kombiniert wurden.

Andere Informationen

Die Überprüfung der Eingabe kann in jedem System, das Daten von einer externen Quelle empfängt, ein Problem darstellen.

Die Validierung von Eingaben – ob fehlend oder fehlerhaft – ist ein so wesentlicher und weit verbreiteter Teil einer sicheren Entwicklung, dass sie in vielen verschiedenen Schwachstellen enthalten ist. Traditionell werden Probleme wie Pufferüberläufe und XSS von vielen Sicherheitsexperten als Probleme bei der Eingabevalidierung eingestuft. Die Eingabevalidierung ist jedoch nicht notwendigerweise der einzige Schutzmechanismus, um solche Probleme zu vermeiden, und reicht in manchen Fällen nicht aus.

Allgemeiner Schwachstellen-Datenbanklink

Wenn Sie noch Fragen bezüglich des Themas haben, dann können Sie sich gerne weiter über die Seite der CWE Organisation darüber weiter informieren.


Sie haben noch Fragen?

Kontaktieren Sie uns

Kostenloser SEO-Check der OSG


Weitere Inhalte