Web-Anwendungen: Angriffe auf Web-Applikationen Flashcards

1
Q

Angriffe auf Web-Applikationen

A

1) Client-seitige Probleme: Cross-Site Scripting

2) Server-seitige Probleme: SQL-Injection, Remote Code Injection, Path Traversal

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Ungeprüfte Eingaben und Prüfung der Eingaben

A
  • Angreifer manipulieren Teile des HTTP-Requests
  • untrusted inputs (Ziel-URL, Parameter, Header) sollen validiert werden anhand Parametern
  • niemals dem Client vertrauen (kann unter Kontrolle des Angreifers stehen und manipuliert werden)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Don’t Do: Client-seitige Validierung

A
  • Erkennung/Prävention von Injection-Angreifen
  • Durchsetzen von Passwort-Vorgaben (können auf Client-Seite unschädlich gemacht werden)
  • keine Geheimnisse in versteckten Feldern schreiben
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

SQL-Injection

A

Injection-Angriff, bei der in existierender Anwendung SQL-Kommandos in die Datenbank-Engine injiziert werden

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Problem SQL-Injections

A
  • Benutzereingaben in dynamischen Queries und String-Konkatenation
  • Einfügen von schadhaften SQL-Befehlen in geeigneten Parameter –> schadhafte Abfrage geht durch
  • Hinzufügen von boolschen Werten gewährt Zugriff
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Lösung: SQL-Injections

A
  • vom Benutzer eingegebene Daten dürfen SQL-Befehle nicht verändern
  • Keine bzw. knappe Ausgabe von Debugging- und Fehlermeldungen
  • Verbieten von Mehrfachabfragen (erschwert Auskundschaften der DB)
  • Escapen von ‘ und “ (verhindert oft SQL-Injection-Angriffe)
  • Verwenden von prepared statements (stored procedures) –> keine dynamische String-Concatenation, stattdesse vorgefertigte SQL-Statements mit Platzhaltern (SQL-Syntax ändert Semantik nicht)
  • Trennung von Applikation und SQL
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Blind SQL-Injections

A
  • Trial-and-Error-Ansatz um Feedback von Applikation zu bekommen (Fehlermeldungen kommen ja nicht)
  • Hinzufügen von 1=1 ergibt true und derselbe Datensatz wird ausgegeben –> Verwundbarkeit liegt vor
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Timing basierte Information-Leaks

A
  • Beeinflussen des Antwortverhaltens des Servers
  • Query, die entweder sehr schnell oder sehr lange abgearbeitet wird, abhängig von abgefragtem Wert
  • durch Messen der Antwortzeit erhält man Informationen über den Wert
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Falls Prepared-Statements nicht in Frage kommen:

A
  • Validieren von Benutzereingaben
  • Entfernen/Escapen von Anführungszeichen in Benutzerdaten
  • Größenbeschränkungen von Parametern
  • Beschränken der Zugriffsrechte auf DB
  • Fehlermeldungen nicht verschicken
  • keine eigenen Neuimplementierung (Rad nicht neu erfinden)
  • -> Schwachstelle bleibt bestehen, Ausnutzen wird nur erschwert
How well did you know this?
1
Not at all
2
3
4
5
Perfectly