Login
Newsletter
Werbung

Thema: Shell Command Injection – Wie fremder Text in das Terminal gelangt

2 Kommentar(e) || Alle anzeigen ||  RSS
Kommentare von Lesern spiegeln nicht unbedingt die Meinung der Redaktion wider.
0
Von irgendwer am Fr, 30. Oktober 2015 um 07:57 #

Wenn dann sollte man auch das richtige Quoting verwenden: shlex.quote(s)

... dann funktioniert es auch mit der Sicherheit. ;-)

Das gibt es aber in dem hier verwendeten 2er Python nicht. Apropos, wenn man jetzt schon neu entwickelt, kann man auch ein 3er Python nehmen [print foo -> print(foo)].

Und sowieso ist der generelle Tipp besser als der spezielle: Nicht auf quoten verlassen, sondern generell der Anwendung entsprechend escapen! Sprich: Im String alle für die Zielanwendung genutzten Steuerzeichen ersetzen. Entweder durch speziell dafür entworfene Funktionen (wie shlex.quote(s)) oder eben schnell per Hand via string.replace(s, old, new). Die Steuerzeichen der Shell sind bekannt und vorgefertigte Ersetzungstabellen finden sich an diversen Ecken. In anderen Bereichen ist das ähnlich: SQL-Injection+co. sind sehr alte Hüte.

[
| Versenden | Drucken ]
  • 0
    Von wer am So, 1. November 2015 um 17:35 #

    Besser ist es die Shell erst gar nicht zu bemühen wenn es nicht unbedingt nötig ist. Quoten ist eine Hilfe aber keine Lösung. Weshalb man bei SQL auch Platzhalter "?" benutzen sollte.

    [
    | Versenden | Drucken ]
Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten
Werbung