| 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 Einfluss
genommen werden kann:
| Ist bei auszuführenden Kommandos kein absoluter
Pfadname angegeben, kann es "`Überraschungen"'
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
Einflussmöglichkeit auf die Zeichenkette existiert,
die der Shell übergeben wird, ist es 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.
|
|