Command Injection

Auch bekannt als:Befehlseinschleusung · OS Command Injection

Command Injection: Einschleusen eigener Betriebssystembefehle in eine Anwendung, die Eingaben an eine Shell weiterreicht. Die Schwachstelle führt in der Regel unmittelbar zu Remote Code ExecutionRemote Code ExecutionSchwachstelle oder Angriff, der Code auf einem entfernten Ziel ausführen lässt. im Kontext des Dienstes.

Funktionsweise und Einordnung

Ruft eine Anwendung ein externes Programm über eine Shell auf und setzt dabei Eingaben in die Kommandozeile ein, interpretiert die Shell auch deren Metazeichen. Semikolon, Pipe, Backticks oder $(...) beenden den vorgesehenen Befehl und starten einen zweiten. Verwandt und oft übersehen ist der Fall ohne Metazeichen: Wird ein Programm ohne absoluten Pfad aufgerufen, genügt ein manipulierter Suchpfad, um eine eigene Datei an seiner Stelle auszuführen.

Bedeutung in der Praxis

Der wirksamste Schutz ist, die Shell ganz zu vermeiden: Prozesse direkt starten, Argumente als Liste übergeben und niemals per Zeichenkette zusammensetzen. Wo ein externer Aufruf unvermeidbar ist, gehören absolute Pfade, eine bereinigte Umgebung und eine Allowlist erlaubter Werte dazu. Filterung einzelner Sonderzeichen ist erfahrungsgemäß unvollständig. In der Bewertung ist auch die blinde Variante zu prüfen, bei der die Ausgabe nicht zurückkommt und sich der Erfolg nur über Zeitverzögerung oder ausgehende Verbindungen zeigt.

Verwandte Begriffe

  • Injection AttackInjection AttackManipuliert Interpreter oder Anwendungen durch eingeschleuste Befehle oder Daten.: Manipuliert Interpreter oder Anwendungen durch eingeschleuste Befehle oder Daten.
  • Remote Code ExecutionRemote Code ExecutionSchwachstelle oder Angriff, der Code auf einem entfernten Ziel ausführen lässt.: Schwachstelle oder Angriff, der Code auf einem entfernten Ziel ausführen lässt.
  • Input ValidationInput ValidationPrüfung von Eingabedaten auf Format, Länge, Typ, Wertebereich und Zulässigkeit.: Prüfung von Eingabedaten auf Format, Länge, Typ, Wertebereich und Zulässigkeit.
  • Secure CodingSecure CodingProgrammierpraktiken zur Vermeidung typischer Schwachstellen und Fehlkonfigurationen.: Programmierpraktiken zur Vermeidung typischer Schwachstellen und Fehlkonfigurationen.