Clickjacking
Użyj Trickest, aby łatwo tworzyć i automatyzować przepływy pracy z wykorzystaniem najbardziej zaawansowanych narzędzi społecznościowych na świecie. Otrzymaj dostęp już dziś:
Co to jest Clickjacking
W ataku clickjacking użytkownik jest oszukany, aby kliknąć element na stronie internetowej, który jest albo niewidoczny, albo przebrany za inny element. Ta manipulacja może prowadzić do niezamierzonych konsekwencji dla użytkownika, takich jak pobieranie złośliwego oprogramowania, przekierowanie na złośliwe strony internetowe, podanie poświadczeń dostępu lub poufnych informacji, transfery pieniężne lub zakupy produktów online.
Trik z wypełnianiem formularzy
Czasami możliwe jest wypełnienie wartości pól formularza za pomocą parametrów GET podczas ładowania strony. Atakujący może wykorzystać to zachowanie, aby wypełnić formularz dowolnymi danymi i wysłać ładunek clickjackingowy, aby użytkownik nacisnął przycisk Wyślij.
Wypełnij formularz za pomocą przeciągnij i upuść
Jeśli potrzebujesz, aby użytkownik wypełnił formularz, ale nie chcesz bezpośrednio prosić go o wpisanie określonych informacji (takich jak e-mail i/lub konkretne hasło, które znasz), możesz poprosić go o przeciągnięcie i upuszczenie czegoś, co wpisze Twoje kontrolowane dane, jak w tym przykładzie.
Podstawowy ładunek
Wieloetapowy ładunek
Przeciągnij i upuść + Kliknij ładunek
XSS + Clickjacking
Jeśli zidentyfikowano atak XSS, który wymaga kliknięcia przez użytkownika w pewny element, aby wywołać XSS, a strona jest podatna na clickjacking, można to wykorzystać, aby oszukać użytkownika, aby kliknął przycisk/link. Przykład: Znaleziono self XSS w prywatnych danych konta (dane, które tylko ty możesz ustawić i odczytać). Strona z formularzem do ustawienia tych danych jest podatna na Clickjacking, a można wypełnić formularz parametrami GET. __Atakujący mógłby przygotować atak Clickjacking na tę stronę, wypełniając formularz payloadem XSS i oszukując użytkownika, aby zatwierdził formularz. Tak więc, gdy formularz zostanie przesłany i wartości zostaną zmodyfikowane, użytkownik wykona XSS.
Strategie łagodzenia Clickjacking
Obrona po stronie klienta
Skrypty wykonywane po stronie klienta mogą podejmować działania w celu zapobieżenia Clickjacking:
Upewnienie się, że okno aplikacji jest głównym lub najwyższym oknem.
Sprawienie, że wszystkie ramki są widoczne.
Zapobieganie klikaniu w niewidoczne ramki.
Wykrywanie i informowanie użytkowników o potencjalnych próbach Clickjacking.
Jednak te skrypty łamiące ramki mogą zostać obejścia:
Ustawienia bezpieczeństwa przeglądarek: Niektóre przeglądarki mogą blokować te skrypty na podstawie swoich ustawień bezpieczeństwa lub braku obsługi JavaScript.
Atrybut HTML5 iframe
sandbox
: Atakujący może zneutralizować skrypty łamiące ramki, ustawiając atrybutsandbox
z wartościamiallow-forms
luballow-scripts
bezallow-top-navigation
. Zapobiega to ramce weryfikacji, czy jest to główne okno, np.,
Obrona po stronie serwera
X-Frame-Options
Nagłówek odpowiedzi HTTP X-Frame-Options
informuje przeglądarki o legalności renderowania strony w elemencie <frame>
lub <iframe>
, pomagając w zapobieganiu Clickjackingowi:
X-Frame-Options: deny
- Żadna domena nie może osadzać zawartości.X-Frame-Options: sameorigin
- Tylko bieżąca witryna może osadzać zawartość.X-Frame-Options: allow-from https://trusted.com
- Tylko określony „uri” może osadzać stronę.Należy zauważyć ograniczenia: jeśli przeglądarka nie obsługuje tej dyrektywy, może nie działać. Niektóre przeglądarki preferują dyrektywę CSP frame-ancestors.
Dyrektywa frame-ancestors w polityce bezpieczeństwa zawartości (CSP)
Dyrektywa frame-ancestors
w CSP jest zalecaną metodą ochrony przed Clickjackingiem:
frame-ancestors 'none'
- Podobne doX-Frame-Options: deny
.frame-ancestors 'self'
- Podobne doX-Frame-Options: sameorigin
.frame-ancestors trusted.com
- Podobne doX-Frame-Options: allow-from
.
Na przykład, poniższa CSP zezwala tylko na osadzanie z tej samej domeny:
Content-Security-Policy: frame-ancestors 'self';
Szczegółowe informacje i przykłady zastosowań można znaleźć w dokumentacji CSP dotyczącej frame-ancestors oraz dokumentacji Mozilla CSP dotyczącej frame-ancestors.
Polityka bezpieczeństwa zawartości (CSP) z child-src
i frame-src
child-src
i frame-src
Polityka bezpieczeństwa zawartości (CSP) to środek bezpieczeństwa pomagający w zapobieganiu Clickjackingowi i innym atakom polegającym na wstrzykiwaniu kodu, określając, które źródła przeglądarka powinna zezwolić na ładowanie zawartości.
Dyrektywa frame-src
frame-src
Określa prawidłowe źródła dla ramek.
Jest bardziej specyficzna niż dyrektywa
default-src
.
Ta polityka pozwala na ramki z tego samego pochodzenia (self) oraz https://trusted-website.com.
Dyrektywa child-src
child-src
Wprowadzona w CSP poziomu 2 w celu ustawienia prawidłowych źródeł dla workerów sieciowych i ramek.
Działa jako opcja zapasowa dla frame-src i worker-src.
Ta polityka pozwala na ramki i workery z tego samego pochodzenia (self) oraz https://trusted-website.com.
Notatki dotyczące użycia:
Dezaprobaty: child-src jest stopniowo eliminowany na rzecz frame-src i worker-src.
Zachowanie zapasowe: Jeśli frame-src jest nieobecny, child-src jest używany jako zapasowy dla ramek. Jeśli oba są nieobecne, używane jest default-src.
Ścisła definicja źródła: W dyrektywach należy uwzględnić tylko zaufane źródła, aby zapobiec eksploatacji.
Skrypty JavaScript do łamania ramek
Choć nie są one całkowicie niezawodne, skrypty do łamania ramek oparte na JavaScript mogą być używane do zapobiegania osadzaniu strony internetowej w ramce. Przykład:
Wykorzystanie tokenów Anti-CSRF
Walidacja tokena: Użyj tokenów Anti-CSRF w aplikacjach internetowych, aby upewnić się, że żądania zmieniające stan są wykonywane celowo przez użytkownika, a nie poprzez stronę podatną na Clickjacking.
Referencje
Użyj Trickest, aby łatwo tworzyć i automatyzować zadania przy użyciu najbardziej zaawansowanych narzędzi społeczności. Zdobądź dostęp już dziś:
Last updated