CInsects/Protokolle/CInsects:Treffen-2010-12-14
Diese Seite ist eine Unterseite von CInsects.
Heute haben wir uns mit drei Themen befasst:
- Vorbereitung RuCTFe
- Angriff einer fiktiven Bank mit veränderten Cockies
- Angriff eines fiktiven sozialen Netzwerkes mit verschiedenen, bereits aus früheren Treffen bekannten, Angriffsmethoden.
Vorbereitung RuCTFe[Bearbeiten]
Vorstellung des CTF Tools. Funktionen sind u.a.:
- Möglichkeit exploits zu übermitteln die automatisch ausgeführt werden und Flaggen übermitteln können.
- Manuelle Übermittlung von Flaggen.
- Pinboard, wer an welchem Serivce arbeitet/gearbeitet hat
- base64 encode/decode
- Erkennen von Angriffen anderer Teams auf unseren Server.
Ausnutzen eines Typfehlers[Bearbeiten]
Im Falle der, im Vergleich zum vorherigen Treffen, neuen badbank.cinsects.de und des sozialen Netzwerks stasivz.cinsects.de, haben wir uns damit befasst wie man sich Zugang zu fremden Benutzerkonten verschaffen kann.
Am Beispiel der bandbank:
Zunächst loggen wir uns mit dem eigenen Account z.B. Name: Anna, PW: 8nZymX62qJ ein und setzen zuvor den Haken bei []Eingeloggt bleiben. Nun wurden zwei Cokies erstellt, die wir mit der FF Erweiterung Web Developer anschauen, verändern und löschen können. Der eine ist eine Session ID (NAME: PHPSESSID), der andere wird dazu verwendet, um uns bei einem weiteren Besuch automatisch anzumelden (NAME: autologin). Dieser ist der für uns interessante Cockie. Schauen wir uns den zweiten Cokcie genauer an, so erkennen wir, dass es sich bei dem Inhalt um URLencodeten Inhalt
(z.B. a%3A2%3A%7Bs%3A7%3A%22user_id%22%3Bi%3A26%3Bs%3A8%3A%22password%22%3Bs%3A40%3A%22a35d4fba8d9dc01e864ca65b1f161d0493b39481%22%3B%7D)
handelt. Naheliegen ist, dass wir diesen einmal decoden (FF Erweiterung hackbar) und uns anschauen, was an Inhalt
(a:2:{s:7:"user_id";i:26;s:8:"password";s:40:"a35d4fba8d9dc01e864ca65b1f161d0493b39481";})
vorliegt. Wir sehen, dass eine user id vergeben ist, und ein password hash. Wir können diese Werte in der hackbar frei verändern, nahe liegt also eine andere id anzugeben um auf ein anderes Konto zu springen.
Doch haben wir noch das Problem, dass wir dazu keinen gültigen hash haben. Aufgrund einer etwas älteren Sicherheitslücke, die für uns geleakt wurde, war dies jedoch auszutrixen, indem wir b:1 als passwort Wert gesetzt haben. FIXME(Was macht er da im Code genau, warum geht das)FIXME
Das Ergebnis konnte dann z.B. so aussehen:
a:2:{s:7:"user_id";i:5;s:8:"password";b:1;}
Nun mussten wir diesen veränderten Wert wieder encoden und in den Cockie schrieben (hackbar+web developer). Der Session Cockie musste zu letzt noch gelöscht werden, und hat man nun die Seite der badbank neu geladen, war man mit dem Nutzer der angegebenen id eingeloggt.
Gleiches Prinzip funktionierte auch bei dem sozialien Netzwerk stasivz.cinsects.de. Das Format des decodeten Inhalts des Cockies war etwas anders, so wurde ein String als ID erwartet, jedoch leicht abzuleiten aus dem der bandbank.
Weitere Angriffe aus stasivz[Bearbeiten]
Einloggen mit Name: John@example.com, PW: example
Eine Möglichkeit bestand darin, im Suchfeld für Personen
'#
einzugeben und damit eine Liste aller Nutzer des Netzwerks mit einem Link auf ihre jeweiligen Seiten zu erhalten.
Eine andere Möglichkeit bestand darin, eine UNION SELECT auf die Personensuche anzuwenden, um z.B. die Passwörter der Nutzer auszulesen:
' UNION SELECT 1,password,3 from user#