Christian-Albrechts-Universität zu Kiel Institut für Informatik Arbeitsgruppe Technologie der Informationssysteme Prof. Dr. H.-J. Klein, Dipl.-Inf. G. Fiedler WS 2006/07 Übungsblatt 9 Übung zur Vorlesung Datenbanktechnologie Übungsblatt 9 Dieses Übungsblatt beschäftigt sich mit der Rechteverwaltung in SQL und möglichen Angriffsszenarien in Web-Informationssystemen. Suchen Sie sich eine befreundete Gruppe, so dass Sie sich gegenseitig die notwendigen Rechte geben können. Falls Sie keine befreundete Gruppe finden, können Sie sich einen zweiten Account holen. Vorbereitung Erzeugen Sie in ihrem Schema eine Tabelle Person(Name,Geburtsdatum) und tragen Sie ein paar Testdatensätze ein. Erzeugen Sie eine weitere Tabelle Angestellte(Name,Abteilung,Gehalt), wobei Angestellte.Name Fremdschlüssel bzgl. Person sei. Tragen Sie hier ebenfalls Testdaten ein. Aufgabe 1 (4 Punkte) a. Formulieren Sie in SQL: Gib die Namen aller Personen. Arbeiten Sie im Schema der befreundeten Gruppe. Lassen Sie sich die minimal notwendigen Rechte geben, um die Anfrage auszuführen. Geben Sie diese Rechte an. b. Erzeugen Sie in ihrem eigenen Schema eine Tabelle Kunde(Name,Ansprechpartner), wobei Ansprechpartner ein Fremdschlüssel auf die Angestellte-Tabelle im Schema der befreundeten Gruppe ist. Lassen Sie sich die minimal notwendigen Rechte dafür geben. Geben Sie diese Rechte an. Hinweis: das Recht select für die Tabelle Angestellte des anderen Schemas wird nicht benötigt. c. Geben Sie einen Algorithmus (Pseudocode mit SQL) an, um die Namen aller Angestellten im fremden Schema zu ermitteln, obwohl kein select-Recht für diese Tabelle erteilt wurde. d. Erteilen Sie ihrer befreundeten Gruppe das Recht, den Namen und die Abteilung, aber nicht das Gehalt aller Angestellten auszulesen. Wie gehen Sie vor? Aufgabe 2 (8 Punkte) a. Erzeugen Sie eine Tabelle Gaestebuch(Kommentar varchar(512)). Geben Sie ihrer befreundeten Gruppe das Recht, Kommentare ins Gästebuch zu schreiben. b. Das Webinterface, das für die Übungen am Lehrstuhl benutzt wird, zeigt HTMLCode aus der Datenbank ungefiltert an. Probieren Sie es aus, indem Sie eine HTMLformatierte Nachricht ins Gästebuch einfügen und sich das Gästebuch anschließend anzeigen lassen. c. Ergaunern Sie sich das Passwort ihrer befreundeten Gruppe auf die folgende Art und Weise: • Informieren Sie sich über JavaScript. • Fügen Sie einen Kommentar in das Gästebuch ihrer befreundeten Gruppe ein, der aus einem JavaScript-Block besteht. Innerhalb dieses JavaScript-Blockes setzen Sie die Variable window.location auf eine URL, über die Sie die volle Kontrolle haben (z.B. unter ihrer Homepage). Hinweis: manche Browser mögen es nicht, wenn eingeschachtelter Skriptcode standardkonform in einen HTML-Kommentar eingebettet wird. Versuchen Sie es im Zweifelsfall ohne und mit Kommentar oder mit verschiedenen Browsern. • Kopieren Sie sich die Startseite des Datenbank-Webinterfaces auf diese URL. Beim Aufrufen des Gästebuchs wird ihre Seite geladen. Damit sei der Angriff erfolgreich gezeigt. Zusatzaufgabe (10 Zusatzpunkte) Erweitern Sie Aufgabe 2 um ein Man in the Middle“-Szenario. Schauen Sie sich an, aus ” welchen Seiten das DB-Webinterface besteht. Schreiben Sie ein Skript, welches die Benutzereingaben nach einem erfolgreichen Angriff nach Art von Aufgabe 2 entgegennimmt, abspeichert, den Request an das echte DB-Webinterface weiterleitet, die Links in der Ausgabe des Webinterfaces anpasst und dieses Ergebnis als das eigene anzeigt. Abgabe: Montag, 08.01.2007, zu Beginn der Übung oder im Aufgabenschrank im Erdgeschoss des Instituts (HRS3). Viel Erfolg!