Linus Neumann
đ€ SpeakerAppearances Over Time
Podcast Appearances
Als wer möchtest du dich anmelden?
Ja, als Tim.
Okay.
Suche in der Datenbank und dann sagt er wirklich Select User from Table Users where name equals Tim.
So, das Tim, das war ja jetzt aber kontrolliert von...
von dem Angreifer oder von dem Nutzer.
Was ist denn jetzt, wenn der Nutzer nicht Tim heiĂt, sondern Tim, AusfĂŒhrungszeichen oben, Semikolon, lösche alles.
Ja, das wĂ€re dann immer noch, wenn man das einfach aneinander packt, ein fĂŒr die Datenbank valider Befehl, den sie auch ausfĂŒhren wĂŒrde.
Und man muss, also ist es offensichtlich nicht so einfach, kriegen ja die ganze Zeit Leute nicht hin, man muss immer aufpassen, dass das, was man an User Generated Input in einen anderen Kontext gibt, also an eine Datenbank,
dass das dort in irgendeiner Weise sichergestellt wird, dass nicht der wahre Datenbankbefehl, den ich eigentlich beabsichtige, in seinem Kontext verÀndert wird.
Und da gibt es eben diesen klassischen X-Case, jetzt fĂ€llt mir die Nummer nicht ein, wo die Schule bei der Mutter anruft und sagt, ja, wir wollten mal fragen, ob der Sohn denn wirklich AnfĂŒhrungszeichen oben Semikolon Droptable Students heiĂt.
Oder ob er nicht vielleicht eine SQL-Injection gemacht hat.
Also quasi diese KontextÀnderung, darauf basieren relativ viele
Schwachstellen in der IT?
327, musst du verlinken.
Und die GegenmaĂnahme ist, dass man dann eben jeweils die Charaktere, also die, was weiĂ ich, Semikolon und so weiter, die eine besondere Bedeutung in der Sprache haben, in die du gerade reinpipes, dass du aufpasst, dass du die escapest oder sicherstellst, dass eben nicht jemand einfach die Datenbanksprache spricht in einem Feld, das die Datenbank auch interpretiert.
Das war hier also die zweite klassische, wirklich ganz, ganz klassische Web-App-Schwachstelle.
So aus den frĂŒhen 90ern oder so, als das erfunden wurde.
Und insofern hat dieser Scanner von dieser Firma...