Przeglądasz archiwalną wersję wpisu.
  •  
    A.......t

    +17

    #security

    Opowiem o ciekawym przypadku #xss, który znalazłem ostatnio na #wykop i został już naprawiony. Ciekawy jest dlatego, że nie tak łatwo go wyexploitować... Ale po kolei.

    Podatność występowała na niektórych podstronach bezpośrednio w adresach. Gdy w adresie został umieszczony znak cudzysłowia, a następnie nawiasy ostre, można było wyjść z tagu i wprowadzić dowolny kod HTML. Przykład na screenie: http://i.imgur.com/ulCWnvo.png

    Może się wydawać: no to jesteśmy w domu, mamy XSS-a! Praktyczne wykorzystanie tego błędu nie jest jednak takie łatwe, a wiąże się z zachowaniem przeglądarek, które automatycznie dokonują URL-encodingu adresów, w których znajdują się nietypowe znaki. A więc nawet jeśli skonstruujemy URL wyglądający tak: http://www.wykop.pl/mikroblog/"<xss>, to przeglądarka i tak wykona żądanie pod http://www.wykop.pl/mikroblog/%22%3cxss%3e. Każda z popularnych przeglądarek - Firefox, Chrome, IE, Opera - zachowuje się w taki sposób. A wtedy ten wykopowy XSS nie wykonuje się, ponieważ do źródła strony przepisywane było dokładnie to samo, co było w adresie. Więc jeśli w adresie był znak ", to on pojawił się w źródle. Jednak jeśli było %22, to w źródle pojawia się %22.

    Jest jednak co najmniej jeden sposób (a dokładniej: jeden sposób, który znam) na zmuszenie przeglądarki do wysłania żądania bez URL-enkodowania. Działa tylko w Internet Explorerze i myślę, że spokojnie można go potraktować jako bug tej przeglądarki. Okazuje się, że IE wykonuje żądanie bez enkodowania adresu dla adresów, które pobiera z nagłówka Location przy przekierowaniach. Wystarczyło więc przygotować stronę, która odpowiada kodem 302 z nagłówkiem
    Location: http://www.wykop.pl/mikroblog/next/6391690"><img/src='1'onerror='alert("XSS")'>/%2e%2e/

    Przechodzimy na tę stronę z Internet Explorera i exploit (alert o treści "XSS") pięknie się wykonuje, bowiem IE nie zamienia " na %22, < na %3c etc. tylko wysyła jak leci. Dołączam do tego postu dowód filmowy, że to działało. Sam exploit wrzuciłem pod adresem: http://hakerium.cba.pl/secret/wykop_xss.php

    Na koniec proponuję małą zagadkę: po co na końcu swojego exploita dałem tę część /%2e%2e/?

    Reasumując, jeśli testujecie kiedyś strony pod kątem XSS-ów i XSS wykonuje się jedynie w przypadku, gdy w URL-u znajduje się znak, który domyślnie jest URL-enkodowany, to taki exploit wciąż jest wykonalny na Internet Explorerze. To dość przydatna wiedza, w kontekście różnych #bugbounty albowiem można udowodnić, że w praktyce da się taki błąd wykorzystać.

    Jeśli ktoś chciałby zapytać, do czego praktycznie można wykorzystać XSS, to najczęściej próbuje się osiągnąć następujące cele:
    - Wykradnięcie ciastka sesyjnego (na Wykopie nietrywialne ze względu na użycie flagi HttpOnly),
    - Odczyt dowolnych danych stronie (np. XSS w Gmailu daje dostęp do całej poczty) lub wykonanie dowolnych akcji na stronie (na Wykopie można by wykopywać swoje znaleziska),
    - Monitorowanie aktywności użytkownika,
    - Przechwycenie danych logowania użytkownika - można pokazać fałszywą stronę logowania, w którą użytkownik ochoczo wpisze własne hasło :)

    (dodaję też #zagadkihakerskie bo myślę, że może to zainteresować subskrybentów)

    źródło: youtube.com

    •  

      @AleFermat: Ciekawa sprawa, ale rozumiem, że jeszcze w skrypcie musi być url przepisywany gdzieś na stronę, np. do linku lub formularza, prawda?

    •  
      A.......t

      0

      @namthar: Jeśli dobrze zrozumiałem pytanie (a nie jestem tego pewien) to tak. Błąd polega właśnie na tym, że w niektórych podstronach aktualny URL był przepisywany na stronę bez uwzględniania jakiegokolwiek enkodowania (czy to URL, czy to HTML).

    •  

      @AleFermat: Tak, o to mi chodziło. A chyba nieczęsto się z tego korzysta. A przynajmniej ja albo generuję taki link do formularza (kontroler, akcja), albo ewentualnie daję action=""

    •  
      A.......t

      0

      @namthar: Na tym polega cały urok testowania bezpieczeństwa aplikacji internetowych, że szuka się miejsc, w których deweloperzy zrobili coś źle, dziwnie bądź nietypowo ;)

    •  

      @AleFermat:
      http://www.wykop.pl/mikroblog/next/6391690"><img/src='1'onerror='alert("XSS")'>/%2e%2e/

      "/%2e%2e/" = "/../"
      czyli przejście jeden poziom wyżej - podejrzewam że aby zamaskować podejrzaną część kodu na pasku adresu użytkownika jak i/albo uniknąć wykopowego 404

    •  
      A.......t

      0

      @kulmegil: Właściwie tak. Internet Explorer ma wbudowany filtr anti-XSS, który nie przepuszczał tego żądania, bo widział, że w URL-u znajduje się to samo, co później wykonuje się na stronie. Zastosowanie dwóch kropek skutkujące wizualną zmianą URL-a spowodowało, że filtr się uciszył i skrypt się wykonywał.

    •  

      @AleFermat: niedawno dostałem odznaczenie, bo odkryłem podobną rzecz - w znaleziskach dało się dać javascript alert

Gorące dyskusje ostatnie 12h

  • avatar

    Kobieta ze Sevastopola pytana na temat mobilizacji. Mówi, że martwi się o syna, ale jest w porządku bo ma drugiego. Inny świat
    #ukraina #wojna #wideozwojny #rosja

    odpowiedzi (34)

  • odpowiedzi (21)

  • avatar

    Od urodzenia choruje na przepuklinę oponowo rdzeniową. Przez całe dzieciństwo byłem na podwórku przez to poniżany. Wszędzie chodzilem więc że starszymi kolegami majacymi po 15/18 lat a ja 9

    Poszedłem do podstawówki - gnębili mnie 5x gorzej niż dzieci na osiedlu. W 4 klasie podstawowej nie moglem juz wytrzymać i mama załatwiła mi nauczanie indywidualne aż do liceum.

    Wtedy psycholodzy powiedzieli że powinienem iść do ludzi i że w szkole specjalnej nikt nie będzie mi dokuczał. Nieprawda Pani Psycholog - Kariny i seby z tak poważnymi chorobami jak lekkie skrzywienie kręgosłupa czy dysleksja cisnęli ze mnie pompę jak ze szmaty. Dziękuję pani psycholog :)

    W lipcu rozstałem się z jedyną kobietą jaką kiedykolwiek miałem bo odkryłem że mnie zdradza. Na odchodne dowiedzialem się że jestem kaleką z wielkim łbem (mam wodogłowie)

    I CO TERAZ?

    JAJCO!

    NIGDY się nie poddam (。◕‿‿◕。)
    #wygryw #przegryw #motywacja
    pokaż całość

    odpowiedzi (70)