Reverse Tab Nabbing

Support HackTricks

Maelezo

Katika hali ambapo mshambuliaji anaweza kudhibiti href ya <a tag yenye sifa target="_blank" rel="opener" ambayo itabonyezwa na mwathirika, mshambuliaji anapoint kiungo hiki kwenye wavuti chini ya udhibiti wake (tovuti mbaya). Kisha, mara tu mwathirika anapobonyeza kiungo na kufikia tovuti ya mshambuliaji, tovuti hii mbaya itakuwa na uwezo wa kudhibiti ukurasa wa asili kupitia kitu cha javascript window.opener. Ikiwa ukurasa huna rel="opener" lakini ina target="_blank" na pia haina rel="noopener" inaweza pia kuwa na hatari.

Njia ya kawaida ya kutumia tabia hii ni kubadilisha eneo la wavuti ya asili kupitia window.opener.location = https://attacker.com/victim.html kwa wavuti inayodhibitiwa na mshambuliaji ambayo inafanana na ile ya asili, ili iweze kuiga fomu ya kuingia ya tovuti ya asili na kuomba taarifa za kuingia kwa mtumiaji.

Hata hivyo, kumbuka kwamba sasa mshambuliaji anaweza kudhibiti kitu cha dirisha cha tovuti ya asili anaweza kuitumia vibaya kwa njia nyingine ili kutekeleza shambulio la siri (labda kubadilisha matukio ya javascript ili kuhamasisha taarifa kwa seva inayodhibitiwa na yeye?)

Muhtasari

Pamoja na kiungo cha nyuma

Kiungo kati ya kurasa za mzazi na mtoto wakati sifa ya kuzuia haitumiki:

Bila kiungo cha nyuma

Kiungo kati ya kurasa za mzazi na mtoto wakati sifa ya kuzuia inatumika:

Mifano

Unda kurasa zifuatazo katika folda na endesha seva ya wavuti kwa python3 -m http.server Kisha, fikia http://127.0.0.1:8000/vulnerable.html, bonyeza kwenye kiungo na uone jinsi URL ya tovuti ya asili inavyobadilika.

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>
malicious.html
<!DOCTYPE html>
<html>
<body>
<script>
window.opener.location = "http://127.0.0.1:8000/malicious_redir.html";
</script>
</body>
</html>
malicious_redir.html
<!DOCTYPE html>
<html>
<body>
<h1>New Malicious Site</h1>
</body>
</html>

Mali ya kupatikana

Katika hali ambapo upatikanaji wa cross-origin unafanyika (upatikanaji kati ya maeneo tofauti), mali za mfano wa darasa la JavaScript la window, zinazorejelewa na kiashiria cha kitu cha JavaScript cha opener, ambazo zinaweza kupatikana na tovuti mbaya zimepunguzwa kwa yafuatayo:

  • opener.closed: Mali hii inapatikana ili kubaini kama dirisha limefungwa, ikirudisha thamani ya boolean.

  • opener.frames: Mali hii inatoa upatikanaji wa vipengele vyote vya iframe ndani ya dirisha la sasa.

  • opener.length: Idadi ya vipengele vya iframe vilivyopo katika dirisha la sasa inarudishwa na mali hii.

  • opener.opener: Kiashiria kwa dirisha lililofungua dirisha la sasa linaweza kupatikana kupitia mali hii.

  • opener.parent: Mali hii inarudisha dirisha la mzazi la dirisha la sasa.

  • opener.self: Upatikanaji wa dirisha la sasa lenyewe unapatikana kupitia mali hii.

  • opener.top: Mali hii inarudisha dirisha la kivinjari lililo juu kabisa.

Hata hivyo, katika matukio ambapo maeneo ni sawa, tovuti mbaya inapata upatikanaji wa mali zote zilizofichuliwa na kiashiria cha window cha JavaScript.

Kuzuia

Taarifa za kuzuia zimeandikwa katika HTML5 Cheat Sheet.

Marejeleo

Support HackTricks

Last updated