Wpis z mikrobloga

Używasz ResolveUrl? Słyszałeś o Cookieless? #od0dopentestera
Twój kod odwołuje się do skryptu #js

">
Ciężko znaleźć tu błąd. Chyba, że wczytamy się w instrukcję.
Dawno temu nie każda przeglądarka obsługiwała ciasteczka.
Serwisy chciały jednak w jakiś sposób zapamiętywać stan sesji użytkownika.
Wymyślono więc, że informacje na ten temat będą przekazywane w adresie URL.

Adres:
http://example.com/aplikacja/home.aspx
Zamieniano na:
http://example.com/aplikacja/(A(XXXX)S(XXXX)F(XXXX))/home.aspx

W miejscu XXXX aplikacja automatycznie doklejała identyfikator sesji.
Dziś mało kto korzysta z tej opcji – ale ona dalej istnieje.

Paweł Hałdrzyński (autor badań) postanowił sprawdzić jakie znaki może zawierać identyfikator sesji – czyli co można użyć w miejscu XXXX.
.NET zwraca błąd 400 dla nieprawidłowych znaków – między innymi >, <, ?, %, $, ).
Nie zwraca jednak błędu dla spacji oraz dla ` i ".

A to może prowadzić do błędów XSS. Dlaczego? Spójrz na przykład z góry.
W miejsce ResolveUrl wstawiamy złośliwe dane przekazane przez użytkownika:

`[http://example.com/aplikacja/(S(](http://example.com/aplikacja/(S() onerror=alert1 ))/home.aspx

Taki adres zostanie wyświetlony jako:

src="/(S(" onerror=alert1`
Czyli przeglądarka spróbuje pobrać obrazek /(S(. Jeżeli go nie znajdzie - wykona event onerror - czyli wyświetli okienko alert.

Zobacz film na YouTube.

Chcesz otrzymywać takie materiały na swój email? Dołącz do newslettera.
Masz pytanie na temat bezpieczeństwa? Zadaj je na grupie od 0 do pentestera na Facebooku.
Subskrybuj kanał na YouTube
Jeżeli chcesz być wołany dodaj się do Mirkolisty.

#gruparatowaniapoziomu #ciekawostki #informatyka #security #programowanie #programista15k #javascript #dotnet #csharp #aspnet #webdev
KacperSzurek - Używasz ResolveUrl? Słyszałeś o Cookieless? #od0dopentestera
Twój kod...
  • 8
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Przechowywanie session id w urlu. Złote czasy OGame się przypominają i wysyłanie linków na pm, a potem po referalu kradzież sesji. Potem usuwanie wszystkich planet, a z jedynej ocalałej wysyłanie floty na top 1 z misją atak. Jakie to kiedyś było proste. Z drugiej strony dobrze, że te czasy minęły i dobrze, że człowiek dorósł.
  • Odpowiedz