13.07.2015 Aufrufe

Verteidigung gegen SQL-Injection-Angriffe - ETH Zürich

Verteidigung gegen SQL-Injection-Angriffe - ETH Zürich

Verteidigung gegen SQL-Injection-Angriffe - ETH Zürich

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

Kapitel 4Umgehung der Authentifizierung4.1 EinleitungIn diesem Kapitel beschreiben wir, wie ein Angreifer die Authentifizierung eines Benutzers umgehen kann. Esgeht darum, sich ohne Passwort anzumelden. Es gibt dabei für einen Angreifer mehrere mögliche Ziele:• Einloggen als willkürlicher Benutzer• Einloggen als bestimmter Benutzer• Einloggen als AdministratorDie Authentifizierung wird von authenticate.jsp abgewickelt. Das darin enthaltene SELECT-Statement lautetfolgendermassen:SELECT * FROM usersWHERE username = ’’AND password = ’’Die Ausdrücke param.username und param.password beinhalten den vom Benutzer eingegebenen Benutzernamenund das Passwort. (Hinweis: Das Attribut escapeXml="false" im Tag ist notwendig, da wirdie Daten so in der Datenbank speichern wollen, wie sie der Benutzer eingegeben hat, und nicht etwa alsHTML-Entities. Vgl. Hinweis auf Seite 13.)Im Allgemeinen kennt der Angreifer das verwendete <strong>SQL</strong>-Statement nicht. Es kann aber durch Analyse von<strong>SQL</strong>-Fehlermeldungen herausgefunden werden. Wir werden kurz beschreiben, wie ein Angreifer solche Fehlermeldungenmit gezielten Eingaben forcieren und die verwendeten <strong>SQL</strong>-Statements herausfinden kann, bevor wiruns den eigentlichen <strong>Angriffe</strong>n widmen.Ein Angreifer kann z. B. für das Login auf der Seite index.jsp die folgenden Werte verwenden:Username:Password:’ or(leer)15

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!