Reverse Tab Nabbing
Last updated
Last updated
Leer & oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Leer & oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
In 'n situasie waar 'n aanvaller die href
argument van 'n <a
tag met die attribuut target="_blank" rel="opener"
kan beheer, wat deur 'n slagoffer geklik gaan word, kan die aanvaller hierdie skakel na 'n web wat onder sy beheer is (n kwaadwillige webwerf) wys. Dan, sodra die slagoffer op die skakel klik en toegang tot die aanvaller se webwerf verkry, sal hierdie kwaadwillige webwerf in staat wees om die oorspronklike bladsy via die javascript objek window.opener
te beheer.
As die bladsy nie **rel="opener"
het nie, maar target="_blank"
bevat, en ook nie rel="noopener"
het nie, kan dit ook kwesbaar wees.
'n Gereelde manier om hierdie gedrag te misbruik, sou wees om die ligging van die oorspronklike web te verander via window.opener.location = https://attacker.com/victim.html
na 'n web wat deur die aanvaller beheer word en wat soos die oorspronklike een lyk, sodat dit die inlog vorm van die oorspronklike webwerf kan imiteer en vir die gebruiker om geloofsbriewe kan vra.
Let egter daarop dat aangesien die aanvaller nou die venster objek van die oorspronklike webwerf kan beheer, hy dit op ander maniere kan misbruik om stealthier aanvalle uit te voer (miskien javascript gebeurtenisse te verander om inligting na 'n bediener wat deur hom beheer word, te ex-filtreer?)
Skakel tussen ouer en kind bladsye wanneer voorkoming attribuut nie gebruik word nie:
Skakel tussen ouer en kind bladsye wanneer voorkoming attribuut gebruik word:
Skep die volgende bladsye in 'n gids en draai 'n webbediener met python3 -m http.server
Dan, toegang http://127.0.0.1:8000/
vulnerable.html, klik op die skakel en let op hoe die oorspronklike webwerf URL verander.
In die scenario waar 'n cross-origin toegang plaasvind (toegang oor verskillende domeine), is die eienskappe van die window JavaScript klasinstansie, waarna verwys word deur die opener JavaScript objekverwysing, wat deur 'n kwaadwillige webwerf verkry kan word, beperk tot die volgende:
opener.closed
: Hierdie eienskap word gebruik om te bepaal of 'n venster gesluit is, wat 'n booleaanse waarde teruggee.
opener.frames
: Hierdie eienskap bied toegang tot alle iframe-elemente binne die huidige venster.
opener.length
: Die aantal iframe-elemente wat in die huidige venster teenwoordig is, word deur hierdie eienskap teruggegee.
opener.opener
: 'n Verwysing na die venster wat die huidige venster geopen het, kan deur hierdie eienskap verkry word.
opener.parent
: Hierdie eienskap gee die ouerventers van die huidige venster terug.
opener.self
: Toegang tot die huidige venster self word deur hierdie eienskap verskaf.
opener.top
: Hierdie eienskap gee die boonste webblaaivenster terug.
E however, in gevalle waar die domeine identies is, verkry die kwaadwillige webwerf toegang tot alle eienskappe wat deur die window JavaScript objekverwysing blootgestel word.
Voorkomingsinligting is gedokumenteer in die HTML5 Cheat Sheet.
Leer & oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Leer & oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)