Login
Login-Name Passwort


 
Newsletter
Werbung

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

13 Kommentar(e) || Alle anzeigen ||  RSS || Kommentieren
Kommentare von Lesern spiegeln nicht unbedingt die Meinung der Redaktion wider.
1
Von Anonymous am Do, 29. Oktober 2015 um 15:50 #

Ich weiß, den Text hat kein professioneller Journalist geschrieben und ein Lead mit der Phrase »dieser Artikel« (die man sonst nicht einmal in der Computerbild findet) ist dementsprechend zu erwarten, aber dies hier:

über die in diesem Artikel informiert werden soll.
ist doch wirklich ein Tiefpunkt. Der Artikel soll informieren, diesen Wunsch hegt der Autor zumindest, ob er's macht, weiß man nicht oder was?

Dabei wäre das so ein tolles, professionelles Lead gewesen:

Man möchte sicher nicht, dass ein Fremder einen Befehl in das Terminal eingibt. Und doch kann es genau dazu kommen, wenn Skripte auf dem System Sicherheitslücken aufweisen, die es einem Angreifer erlauben, beliebigen Schadcode auszuführen. Eine dieser Sicherheitslücken ist die sogenannte »Shell Command Injection« oder auch »Shell Injection«
, wenn man hier einfach einen Punkt gemacht hätte, ohne diesen unmöglichen Nebensatz. Also, bitte merken für nächstes Mal: Nicht ausdrücken, was der Artikel bezwecken soll, das macht er schon selbst (oder auch nicht, wenn er schlecht ist).

Auf den Inhalt hab ich jetzt keine Lust mehr.

  • 0
    Von -.,.-,.-,.-,-.,-., am Do, 29. Oktober 2015 um 16:06 #

    Du hast es schon in etwa richtig beschrieben.

    Die Artikel auf prolinux.de sind aber sachlich informativer als auf anderen Webseiten, da das Lese-Publikum noch nicht komplett verblödet ist und bemerkt, wenn der Autor rein sachlich keine Ahnung haben sollte. Hier fallen Fehler noch auf, abseits von literarischen Fehlerchen, die hier so gut wie niemanden interessieren.

    Du bestrafst Dich also nur selbst, wenn Du nicht weiterliest.

    0
    Von Anonymous am Do, 29. Oktober 2015 um 16:35 #

    Auf den Inhalt hab ich jetzt keine Lust mehr.

    Au weia, man kann es auch übertreiben. Ist aber andererseits beruhigend, dass es noch größere Korinthenkacker als mich gibt.

    0
    Von TheRegRunner am Do, 29. Oktober 2015 um 17:58 #

    Es gibt jetzt einen Patch ... aber nicht für meinen Schreibstil sondern für das beschriebene Problem :-)

    https://launchpadlibrarian.net/223330739/PatchForMailCap.diff

    0
    Von Ein Leser am Do, 29. Oktober 2015 um 23:34 #

    Computerbild findest du besser? Auf das Artikelthema hast du keine Lust? Oder über was soll in deinem Kommentar informiert werden?

    0
    Von irgendwer am Fr, 30. Oktober 2015 um 07:41 #

    Auf den Inhalt hab ich jetzt keine Lust mehr.

    Du vermeidest also bewusst sachlich gute Artikel wegen eines dir nicht passenden Schreibstiles und ziehst Artikel mit einem dir passenden Wortlaut vor, unabhängig von deren Informations- und Wahrheitsgehalt.

    Ja, das ist völlig normal. Ordentlich gekleidet, schön mit Schlips und Krawatte, kriegt der Gangster jeden überredet, ihm zu helfen. Der ehrliche hat da keine Chance, wenn sein Auftreten halt genauso ehrlich ist.

    Kleider machen Leute, das wusste man schon vor Jahrhunderten. Ja, das funktioniert so!

    0
    Von Dudsi Du am Fr, 30. Oktober 2015 um 12:04 #

    Auf den Inhalt hab ich jetzt keine Lust mehr.

    Du Armer! Hat dir der böse, böse Autor den Tag verdorben!? Gemein!

0
Von abc am Do, 29. Oktober 2015 um 19:58 #

Folgende Felder enthalten keine oder fehlerhafte Daten:

Sie haben keine Zugriffsrechte, um diese Daten zu ändern.

0
Von Meiner ist 18m lang am Do, 29. Oktober 2015 um 19:59 #

Betrifft das nur python oder geht das z.B. auch mit bash?
Betrifft das nur python oder geht das z.B. auch mit bash?

  • 0
    Von wer am So, 1. November 2015 um 17:12 #

    Das geht mit jeder Programmiersprache die Kommandos an eine Shell zur Ausführung übergibt.

    Perl z.B
    system( 'kommando' )
    system( 'ls -l *.txt' )

    wobei bei den Perl-Entwicklern das Problem bekannt ist und es darum eine Variante von "system" gibt, die ohne Shell arbeitet:
    system('kommado', 'attr1' , 'attr2', 'attr3', ...)
    system('ls', '-l', '*.txt')

    Es gibt aber noch andere Stellen in Perl die Anfällig dafür sein können "open" und "qx" z.B.

0
Von Ein Leser am Do, 29. Oktober 2015 um 23:21 #

Guter Artikel mit wichtigen Inhalten klar und verständlich aufbereitet. Freue mich auf die Fortsetzung.

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.

  • 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.

Pro-Linux
Traut euch!
Neue Nachrichten
Werbung