| Die Ausführung externer Kommandos (sei es durch system
oder auch ganz einfach bei einer Pipeline mit open)
ist grundsätzlich sehr gefährlich, wenn darauf Einfluß
genommen werden kann:
| Wenn bei auszuführenden Kommandos kein absoluter
Pfadname angegeben wird, kann es ``Uberraschungen''
durch eine manipulierte Umgebungsvariable PATH
geben oder durch vorgeschobene Kommandos eines
Angreifers, die weiter vorne im Pfad vor dem
eigentlich gewünschten Kommando liegen.
|
| Sowohl bei open als auch bei system sind
beliebige Shell-Metazeichen zugelassen. Wenn eine
Einflüßmöglichkeit auf die Zeichenkette existiert,
die der Shell übermittelt wird, ist es damit leicht
möglich, ein Kommando des Angreifers einzufügen.
Beliebt sind hierfür `evil command` und ;evil command.
|
| Die Shell trennt Kommandozeilen auf Basis der
Umgebungsvariablen IFS auf. Wenn die z.B. auf den
Schrägstrich gesetzt wird, dann wird aus einem absoluten
Kommandonamen beispielsweise unerwartet das Kommando usr.
|
|