• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

question-closed Metoda "double submitted cookie". Bezpieczeństwo dla CORS.

0 głosów
81 wizyt
pytanie zadane 16 marca 2021 w Bezpieczeństwo, hacking przez Jakub 0 Pasjonat (22,730 p.)
zamknięte 16 marca 2021 przez Jakub 0

Witam, dużo czytałem na temat wspomnianej w tytule metody przeciwdziałania atakom CSRF. Wiem, że po wejściu na stronę, ustawiany jest plik cookie z atrybutem httpOnly zawierający token, dodatkowo ten sam token przesyłany jest na klienta w jakiejś formie (np. jako ukryte pole formularza). Po wysłaniu requesta, oba tokeny muszą się zgadzać. No i niby jesteśmy bezpieczni, bo atakujący tworząc linka z requestem, nie wie jaki token utworzy serwer w pliku cookie u klienta.

Co jednak, jeśli skrypt atakującego najpierw wykona żądanie GET na "atakowaną stronę", sparsuje odpowiednio odpowiedź i wyciągnie z niej CSRF token? Jak wiadomo, pliki cookie ustawiane są zawsze automatycznie. Mamy więc wszystkie informacje, by wykonać krytyczny request.

Wiem, że pogrubiony fragment jest zastrzeżony przez SOP (Single Origin Policy). Zastanawia mnie jednak to, jak sprawa wygląda dla serwera zezwalającego na CORS. Czy w takiej sytuacji całe omawiane zabezpieczenie jest bezskuteczne?

Z góry dziękuje za informację zwrotną czy dobrze myślę laugh

 

 

komentarz zamknięcia: Temat wyczerpany

2 odpowiedzi

+3 głosów
odpowiedź 16 marca 2021 przez Comandeer Guru (562,680 p.)
wybrane 16 marca 2021 przez Jakub 0
 
Najlepsza

Żądanie GET zrobione z poziomu JS-a nie będzie miało dostępu do cookies httpOnly.

Jeszcze lepszym zabezpieczeniem jest użycie ciasteczek SameSite.

komentarz 16 marca 2021 przez Jakub 0 Pasjonat (22,730 p.)
edycja 16 marca 2021 przez Jakub 0

Dziękuje za odpowiedź. 

Żądanie GET zrobione z poziomu JS-a nie będzie miało dostępu do cookies httpOnly.

To prawda, ale dostęp do ciasteczka i tak nie jest konieczny by przeprowadzić atak. Dajmy najprostszy przykład:

Mam request GET /login, który zwraca stronę z formularzem logowania. Wykonanie tego żądania skutkuje stworzeniem ciasteczka HttpOnly (niedostępny dla js). Ten sam token niech się znajdzie w jakimś ukrytym polu input formularza. 

Osoba atakująca ma swoją stronę. Po wejściu na nią, zawarty tam skrypt wykonuje wspomniany request. Z odpowiedzi html wyodrębnia on wartość tokenu (z tego inputa). Jednocześnie powstał plik cookie o takim samym tokenie.

W tym momencie (jeśli mamy dostęp do response bo SOP tego nie powstrzymał) "haker" ma już wszystko czego potrzebuje, żeby wykonać żądanie logowania. W tym przypadku zabezpieczenie przed CSRF nic nie dało.

Chodzi mi o to czy faktycznie tak by było w przypadku serwera zezwalającego na CORS, czy może coś pominąłem. Mam nadzieję, że bardziej rozjaśniłem temat.

Jeszcze lepszym zabezpieczeniem jest użycie ciasteczek SameSite.

 Fajna sprawa, nie słyszałem o tym. Poczytam sobie :)

1
komentarz 16 marca 2021 przez Comandeer Guru (562,680 p.)

Istnieje nagłówek Access-Control-Allow-Credentials, który pozwala ustalić, czy pozwalamy na zwracania cookies przy CORS. Dodatkowo zawsze można sprawdzić, skąd przyszło żądanie i uwalać, jeśli nie z naszej strony (choćby przy pomocy nagłówka Origin czy referrera).

Niemniej samo założenie, że strona logowania będzie dostępna po CORS, jest dość śmiałe. To, że cała witryna jest, nie znaczy, że ta jedna podstrona również.

0 głosów
odpowiedź 16 marca 2021 przez CSSoup Mądrala (6,370 p.)
Ogólnie co do metody GET - jeżeli w appce pojawia się podatność XSS, to MOŻE pojawić się szansa pobrania tokena i wykonania żądania  HTTP.
komentarz 16 marca 2021 przez Jakub 0 Pasjonat (22,730 p.)
To wiem akurat. Żadne zabezpieczenia nie mają sensu jak strona jest podatna na XSS.

Bardziej zastanawiam się nad tym CORS, bo stosunkowo często serwer jest oddzielony od klienta (służy jako zewnętrzne API dla wielu typów aplikacji).

Podobne pytania

0 głosów
1 odpowiedź 274 wizyt
pytanie zadane 23 listopada 2018 w Bezpieczeństwo, hacking przez Adrian1999 Nałogowiec (34,490 p.)
–1 głos
1 odpowiedź 133 wizyt
0 głosów
0 odpowiedzi 71 wizyt

86,448 zapytań

135,207 odpowiedzi

300,348 komentarzy

57,197 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...