Clickjacking
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Use Trickest to easily build and automate workflows powered by the world's most advanced community tools. Get Access Today:
U clickjacking napadu, korisnik je prevaren da klikne na element na veb stranici koji je ili nevidljiv ili prikazan kao drugi element. Ova manipulacija može dovesti do nepredviđenih posledica za korisnika, kao što su preuzimanje malvera, preusmeravanje na zlonamerne veb stranice, davanje kredencijala ili osetljivih informacija, transfer novca ili online kupovina proizvoda.
Ponekad je moguće popuniti vrednost polja obrasca koristeći GET parametre prilikom učitavanja stranice. Napadač može zloupotrebiti ovo ponašanje da popuni obrazac proizvoljnim podacima i pošalje clickjacking payload tako da korisnik pritisne dugme Pošalji.
Ako treba da korisnik popuni obrazac ali ne želite da ga direktno pitate da unese neke specifične informacije (kao što su email ili specifična lozinka koju znate), možete ga jednostavno zamoliti da Drag&Drop nešto što će uneti vaše kontrolisane podatke kao u ovom primeru.
Ako ste identifikovali XSS napad koji zahteva da korisnik klikne na neki element da bi pokrenuo XSS i stranica je ranjiva na clickjacking, mogli biste to iskoristiti da prevarite korisnika da klikne na dugme/link. Primer: Pronašli ste self XSS u nekim privatnim podacima naloga (podaci koje samo vi možete postaviti i čitati). Stranica sa formom za postavljanje ovih podataka je ranjiva na Clickjacking i možete prepopuniti formu sa GET parametrima. __Napadač bi mogao pripremiti Clickjacking napad na tu stranicu prepopunjavajući formu sa XSS payload i prevariti korisnika da pošalje formu. Tako, kada se forma pošalje i vrednosti se modifikuju, korisnik će izvršiti XSS.
Skripte koje se izvršavaju na klijentskoj strani mogu izvesti radnje kako bi sprečile Clickjacking:
Osiguranje da je prozor aplikacije glavni ili gornji prozor.
Činjenje svih okvira vidljivim.
Sprečavanje klikova na nevidljive okvire.
Otkrivanje i upozoravanje korisnika na potencijalne pokušaje Clickjacking-a.
Međutim, ovi skripti za razbijanje okvira mogu biti zaobiđeni:
Bezbednosne postavke pregledača: Neki pregledači mogu blokirati ove skripte na osnovu svojih bezbednosnih postavki ili nedostatka podrške za JavaScript.
HTML5 iframe sandbox
atribut: Napadač može neutralisati skripte za razbijanje okvira postavljanjem sandbox
atributa sa allow-forms
ili allow-scripts
vrednostima bez allow-top-navigation
. Ovo sprečava iframe da proveri da li je gornji prozor, npr.,
The allow-forms
i allow-scripts
vrednosti omogućavaju akcije unutar iframe-a dok onemogućavaju navigaciju na vrhunskom nivou. Da bi se osigurala nameravana funkcionalnost ciljanog sajta, dodatne dozvole kao što su allow-same-origin
i allow-modals
mogu biti neophodne, u zavisnosti od tipa napada. Poruke u konzoli pretraživača mogu pomoći u određivanju koje dozvole treba omogućiti.
X-Frame-Options
HTTP odgovor header obaveštava pretraživače o legitimnosti prikazivanja stranice u <frame>
ili <iframe>
, pomažući u sprečavanju Clickjacking-a:
X-Frame-Options: deny
- Nijedna domena ne može uokviriti sadržaj.
X-Frame-Options: sameorigin
- Samo trenutni sajt može uokviriti sadržaj.
X-Frame-Options: allow-from https://trusted.com
- Samo navedeni 'uri' može uokviriti stranicu.
Imajte na umu ograničenja: ako pretraživač ne podržava ovu direktivu, možda neće raditi. Neki pretraživači preferiraju CSP frame-ancestors direktivu.
frame-ancestors
direktiva u CSP je preporučena metoda za zaštitu od Clickjacking-a:
frame-ancestors 'none'
- Slično X-Frame-Options: deny
.
frame-ancestors 'self'
- Slično X-Frame-Options: sameorigin
.
frame-ancestors trusted.com
- Slično X-Frame-Options: allow-from
.
Na primer, sledeći CSP dozvoljava samo uokvirivanje sa iste domene:
Content-Security-Policy: frame-ancestors 'self';
Dalje informacije i složeni primeri mogu se naći u frame-ancestors CSP dokumentaciji i Mozilla's CSP frame-ancestors dokumentaciji.
child-src
i frame-src
Content Security Policy (CSP) je bezbednosna mera koja pomaže u sprečavanju Clickjacking-a i drugih napada injekcijom koda tako što specificira koje izvore pretraživač treba da dozvoli za učitavanje sadržaja.
frame-src
DirektivaDefiniše validne izvore za frame-ove.
Specifičnija je od default-src
direktive.
Ova politika omogućava okvire sa iste lokacije (self) i https://trusted-website.com.
child-src
DirektivaUvedena u CSP nivou 2 za postavljanje validnih izvora za web radnike i okvire.
Deluje kao rezervna opcija za frame-src i worker-src.
Ova politika omogućava okvire i radnike sa iste lokacije (self) i https://trusted-website.com.
Napomene o korišćenju:
Deprecacija: child-src se ukida u korist frame-src i worker-src.
Rezervno ponašanje: Ako frame-src nije prisutan, child-src se koristi kao rezervna opcija za okvire. Ako su oba odsutna, default-src se koristi.
Stroga definicija izvora: Uključite samo pouzdane izvore u direktive kako biste sprečili eksploataciju.
Iako nisu potpuno nepogrešive, skripte zasnovane na JavaScript-u za razbijanje okvira mogu se koristiti za sprečavanje da web stranica bude u okviru. Primer:
Validacija Tokena: Koristite anti-CSRF tokene u web aplikacijama kako biste osigurali da su zahtevi koji menjaju stanje namerno izvršeni od strane korisnika, a ne putem Clickjacked stranice.
Koristite Trickest za lako kreiranje i automatizaciju radnih tokova pokretanih najnaprednijim alatima zajednice. Pribavite pristup danas:
Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)