hacktricks/pentesting-web/reverse-tab-nabbing.md
2024-02-11 02:07:06 +00:00

6.6 KiB

Leer AWS-hacking van nul tot held met htARTE (HackTricks AWS Red Team Expert)!

Ander maniere om HackTricks te ondersteun:

Beskrywing

In 'n situasie waar 'n aanvaller die href argument van 'n <a tag met die eienskap 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 skadelike webwerf). Dan, sodra die slagoffer die skakel kliek en toegang tot die aanvaller se webwerf verkry, sal hierdie skadelike webwerf in staat wees om die oorspronklike bladsy te beheer via die javascript-objek window.opener.
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 Gewone manier om van hierdie gedrag misbruik te maak, 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 lyk soos die oorspronklike een, sodat dit die aanmeldingsvorm van die oorspronklike webwerf kan naboots en die gebruiker om geloofsbriewe kan vra.

Let egter daarop dat aangesien die aanvaller nou die vensterobjek van die oorspronklike webwerf kan beheer, hy dit op ander maniere kan misbruik om stealthier aanvalle uit te voer (dalk deur javascript-gebeurtenisse te wysig om inligting na 'n deur hom beheerde bediener uit te lek?)

Oorsig

Met terugskakel

Skakel tussen ouer- en kinderbladsye wanneer die voorkomingskenmerk nie gebruik word nie:

https://owasp.org/www-community/assets/images/TABNABBING_OVERVIEW_WITH_LINK.png

Sonder terugskakel

Skakel tussen ouer- en kinderbladsye wanneer die voorkomingskenmerk gebruik word:

https://owasp.org/www-community/assets/images/TABNABBING_OVERVIEW_WITHOUT_LINK.png

Voorbeelde

Skep die volgende bladsye in 'n vouer en voer 'n webbediener uit met python3 -m http.server
Toets dan, besoek 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>

{% code title="skadelik.html" %}

<!DOCTYPE html>
<html>
<body>
<script>
window.opener.location = "http://127.0.0.1:8000/malicious_redir.html";
</script>
</body>
</html>

{% code title="skadelike_redir.html" %}

<!DOCTYPE html>
<html>
<body>
<h1>New Malicious Site</h1>
</body>
</html>

{% endcode %}

Toeganklike eienskappe

In die scenario waar 'n kruis-oorsprong 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 skadelike webwerf toeganklik is, beperk tot die volgende:

  • opener.closed: Hierdie eienskap word gebruik om vas te stel of 'n venster gesluit is, en gee 'n booleaanse waarde terug.
  • 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 verkry word deur hierdie eienskap.
  • opener.parent: Hierdie eienskap gee die ouer-venster van die huidige venster terug.
  • opener.self: Toegang tot die huidige venster self word deur hierdie eienskap verskaf.
  • opener.top: Hierdie eienskap gee die venster met die hoogste vlak in die blaaier terug.

In gevalle waar die domeine egter identies is, verkry die skadelike webwerf toegang tot alle eienskappe wat deur die window JavaScript-objekverwysing blootgestel word.

Voorkoming

Voorkomingsinligting word gedokumenteer in die HTML5 Spiekbriefie.

Verwysings

Leer AWS-hacking van nul tot held met htARTE (HackTricks AWS Red Team Expert)!

Ander maniere om HackTricks te ondersteun: