Bearbeiten von „CInsects/Protokolle/CInsects:Treffen-2010-10-19

Zur Navigation springen Zur Suche springen

Warnung: Du bist nicht angemeldet. Deine IP-Adresse wird bei Bearbeitungen öffentlich sichtbar. Melde dich an oder erstelle ein Benutzerkonto, damit Bearbeitungen deinem Benutzernamen zugeordnet werden.

Die Bearbeitung kann rückgängig gemacht werden. Bitte prüfe den Vergleich unten, um sicherzustellen, dass du dies tun möchtest, und veröffentliche dann unten deine Änderungen, um die Bearbeitung rückgängig zu machen.

Aktuelle Version Dein Text
Zeile 1: Zeile 1:
Diese Seite ist eine Unterseite von [[CInsects]].
Heute haben wir uns überwiegend mit SQL-Injections beschäftigt.
Heute haben wir uns überwiegend mit SQL-Injections beschäftigt.


Zeile 41: Zeile 39:
   SELECT user_ID FROM user WHERE username='Bob' AND passwort='4567RFGHZUr578f6578GFUZI76875edut'
   SELECT user_ID FROM user WHERE username='Bob' AND passwort='4567RFGHZUr578f6578GFUZI76875edut'


hier können wir sehen das aus dem Passwwort Blub eine verschlüsselte Zeichenkette wird, wir können es also nicht für unseren angriff benutzen. Also muss der Username herhalten. Wenn wir jezt wieder mit dem gleichen Angriff wie bei dem ersten verwenden wollen, gibt es ein problem da am ende noch ein AND steht mit dem passwort dahinter. Jetzt währe es gut wenn wir den rest der Zeile einfach Ignorieren können, dann brauchen wir uns um das ende keine gedanken mehr zu machen. in MySQL bedeutet das zeichen # das der rest der Zeile ein Kommentar ist. Damit können wir einen neuen Angriff formulieren:
hier können wir sehen das aus dem Passwwort Blub eine verschlüsselte Zeichenkette wird, wir können es also nicht für unseren angriff benutzen. Also muss der Username herhalten. Wenn wir jezt wieder mit dem gleichen Angriff wie bei dem ersten verwenden wollen, gibt es ein problem da am ende noch ein AND steht mit dem passwort dahinter. Jetzt währe es gut wenn wir den rest der Zeile einfach Ignorieren können, dann brauchen wir uns um das ende keine gedanken mehr zu machen. in MySQL bedeutet das zeichen # das der rest der Zeile ein Kommentar ist. Damit können wir einen neuen Angriff formulieren:


   ' OR 1=1#
   ' OR 1=1#
Zeile 62: Zeile 60:
Im dritten Beispiel, welches wir, verwendet haben, hatte eine weitere Schwierigkeit: Das SQL Kommando geht über mehrere Zeilen, so das man nicht einfach den Rest der Zeile auskommentieren konnte. Man musste also etwas einfügen und darauf achten das das gesammte Kommando noch Syntaktisch richtig ist.  
Im dritten Beispiel, welches wir, verwendet haben, hatte eine weitere Schwierigkeit: Das SQL Kommando geht über mehrere Zeilen, so das man nicht einfach den Rest der Zeile auskommentieren konnte. Man musste also etwas einfügen und darauf achten das das gesammte Kommando noch Syntaktisch richtig ist.  


     ' OR 1=1 OR ' '='
     ' OR 1=1 OR ''='


ist ein möglicher angriffsstring.
ist ein möglicher angriffsstring.
Zeile 68: Zeile 66:
=== UNION SELECT ===
=== UNION SELECT ===


Mit ''UNION SELECT'' lassen sich die daten eines 2. SELECTS an das erste anhängen. Das wichtige dabei ist dass beim 1. und 2. Select gleich viele Zeilen ausgewählt werden. Zum beispiel also:
Schreibe ich die Tage --[[Benutzer:0rokita|Nils]] 21:11, 20. Okt. 2010 (CEST)
 
 
  SELECT user_ID, name FROM user WHERE name='Alice' UNION SELECT name, passwort FROM admin #' AND passwort.... (rest des orginalen Strings)
 
An diesem Beispiel kann man wieder sehen das über eine ähnliche Lücke wie bei den vorherigen Beispielen angegriffen wurde.
 
Mithilfe der Strukturtabellen von MySQL kann man darüber auch die Struktur der anderen Tabellen abgeruffen werden. Dann lautet der Angriffsstring:
 
  Bob' UNION SELECT column_name,table_name FROM INFORMATION_SCHEMA.columns#
 
wird zu dem Befehl:
 
 
  SELECT user_ID, name FROM user WHERE name='Bob' UNION SELECT column_name,table_name FROM INFORMATION_SCHEMA.columns#' And passwort....
 
und gibt die spalten zu allen Tabellen die es gibt aus. ACHTUNG: die tabellen können sich in anderen Datenbanken befinden, dann muss anders darauf zugegriffen werden. Auch die Datenbank lässt sich über das INFORMATION_SCHEMA ermitteln.


== Sonstiges ==
== Sonstiges ==
* Der nächste Termin ist Dienstag um 18:00 Uhr in D-114
* Der nächste Termin wird noch bekanntgegeben
* Für Kekse ist gesorgt
* Für Kekse ist gesorgt
* Wir werden uns die nächsten paar Wochen mit Websicherheit beschäftigen
* Wir werden uns die nächsten paar Wochen mit Websicherheit beschäftigen
Zeile 97: Zeile 79:
* [http://ferruh.mavituna.com/sql-injection-cheatsheet-oku/ SQL Injection Cheat Sheet] Tipps und Tricks zu SQL Injections
* [http://ferruh.mavituna.com/sql-injection-cheatsheet-oku/ SQL Injection Cheat Sheet] Tipps und Tricks zu SQL Injections
* [[Bild:Sqlinj.tar.gz]] Hackits die wir ausprobiert haben (gruseliger PHP-Code)
* [[Bild:Sqlinj.tar.gz]] Hackits die wir ausprobiert haben (gruseliger PHP-Code)
[[Kategorie:CInsects-Protokolle]]

Bitte beachte, dass alle Beiträge zu Fachschaft_Informatik von anderen Mitwirkenden bearbeitet, geändert oder gelöscht werden können. Reiche hier keine Texte ein, falls du nicht willst, dass diese ohne Einschränkung geändert werden können.

Du bestätigst hiermit auch, dass du diese Texte selbst geschrieben hast oder diese von einer gemeinfreien Quelle kopiert hast (weitere Einzelheiten unter Fachschaft Informatik:Urheberrechte). ÜBERTRAGE OHNE GENEHMIGUNG KEINE URHEBERRECHTLICH GESCHÜTZTEN INHALTE!

Bitte beantworte die folgende Frage, um diese Seite bearbeiten zu können (<a href="/Fachschaft/wiki/index.php?title=Special:Captcha/help" class="internal">weitere Informationen</a>):

Abbrechen Bearbeitungshilfe (wird in einem neuen Fenster geöffnet)