Reverse Tab Nabbing

Вивчайте хакінг AWS від нуля до героя з htARTE (HackTricks AWS Red Team Expert)!

Інші способи підтримки HackTricks:

Опис

У ситуації, коли зловмисник може контролювати аргумент href тегу <a з атрибутом target="_blank" rel="opener", на який натисне жертва, зловмисник може спрямувати це посилання на веб-сайт під його контролем (зловісний веб-сайт). Потім, коли жертва клікає на посилання та переходить на веб-сайт зловмисника, цей зловісний веб-сайт зможе контролювати оригінальну сторінку через об'єкт javascript window.opener. Якщо сторінка не має rel="opener", але містить target="_blank", і також не має rel="noopener"**, вона також може бути вразливою.

Звичайним способом зловживання цією поведінкою було б змінити місце розташування оригінального веб-сайту через window.opener.location = https://attacker.com/victim.html на веб-сайт, керований зловмисником, який виглядає як оригінальний, тому він може імітувати форму входу оригінального веб-сайту та запитувати у користувача облікові дані.

Проте слід зауважити, що оскільки зловмисник тепер може контролювати об'єкт вікна оригінального веб-сайту, він може зловживати ним іншими способами для здійснення прихованих атак (можливо, змінюючи події javascript для витікання інформації на сервер, керований ним?)

Огляд

З відсиланням назад

Посилання між батьківськими та дочірніми сторінками, коли не використовується атрибут запобігання:

Без відсилання назад

Посилання між батьківськими та дочірніми сторінками, коли використовується атрибут запобігання:

Приклади

Створіть наступні сторінки у папці та запустіть веб-сервер за допомогою python3 -m http.server Потім зайдіть на http://127.0.0.1:8000/vulnerable.html, клікніть на посилання та зауважте, як URL оригінального веб-сайту змінюється.

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

```markup

New Malicious Site

``` ## Доступні властивості

У випадку коли відбувається крос-оригінальний доступ (доступ між різними доменами), властивості екземпляра класу JavaScript window, на який посилається посилання об'єкта JavaScript opener, які можуть бути доступні зловмисному сайту, обмежені наступним чином:

  • opener.closed: Ця властивість використовується для визначення, чи було закрито вікно, повертаючи логічне значення.

  • opener.frames: Ця властивість надає доступ до всіх елементів iframe в поточному вікні.

  • opener.length: Ця властивість повертає кількість елементів iframe, які присутні в поточному вікні.

  • opener.opener: Через цю властивість можна отримати посилання на вікно, яке відкрило поточне вікно.

  • opener.parent: Ця властивість повертає батьківське вікно поточного вікна.

  • opener.self: Ця властивість надає доступ до самого поточного вікна.

  • opener.top: Ця властивість повертає найвище розташоване вікно браузера.

Проте, у випадках, коли домени ідентичні, зловмисний сайт отримує доступ до всіх властивостей, які викриває window посилання об'єкта JavaScript.

Запобігання

Інформація про запобігання задокументована в HTML5 Cheat Sheet.

Посилання

Last updated