Хакер - Эксплуатируем Open Redirect. Как открытый редирект используют для фишинга и DDoS

Хакер - Эксплуатируем Open Redirect. Как открытый редирект используют для фишинга и DDoS

hacker_frei

https://t.me/hacker_frei

Айгуль C.

Содержание статьи

  • Разбираемся глубже в Open Redirect
  • Откуда появляется уязвимость?
  • Как самому найти уязвимость?
  • Эксплуатация уязвимости. Основные угрозы
  • Фишинг
  • Совмещение с другой уязвимостью
  • Open Redirect для DDoS
  • Открытая уязвимость в Google
  • Доставка ссылки
  • Методы атак
  • Итог

Уязвимости типа Open Redirect позволяют перенаправить пользователя на фишинговый сайт или заставить скачать руткит под видом полезного ПО. Несмотря на всю опасность этих уязвимостей, закрывать их не спешат даже в Google. Давай разберемся, почему так вышло и как работают разные атаки с Open Redirect.

Редирект позволяет направить пользователя с одного сайта на другой — это знают все. Что же тогда такое Open Redirect («открытое перенаправление»)? Звучит как название какого-то свободного стандарта, но в реальности так называют уязвимость, которая позволяет незаметно направить пользователя на любой сайт с доверенного домена.

WARNING

Вся информация предоставлена исключительно в ознакомительных целях. Ни редакция, ни автор не несут ответственности за любой возможный вред, причиненный материалами данной статьи.

В основном этот баг используется для фишинга. Злоумышленник перенаправляет с уязвимого доверенного сайта на свой фишинговый сайт и крадет данные. Эта уязвимость активно применялась хакерами при атаках на государственные сайты.

Представь, что получится, если сайт apple.com станет разрешать редирект на apple.evil.com. Пользователь будет думать, что он находится на доверенном сайте, но при этом оставлять свои данные на сайте злоумышленника. Кстати, подобную уязвимость уже находили.

А что, если прямо сейчас в Google открыта такая уязвимость? Пользователь заходит на свою почту по ссылке google.com, вводит данные. Возможно, он проверяет адресную строку браузера и URL, но в ней все в порядке. Затем попадает на страницу с письмами и видит привычную ежедневную картину. Как часто в этот момент пользователи проверяют адресную строку? А ведь свирепые русские хакеры не дремлют!

 

Разбираемся глубже в Open Redirect

К примеру, у нас есть доверенный сайт http://site.com/. Но в нем есть уязвимость Open Redirect, которая будет выглядеть так: http://site.com/login?redirectUrl=http://site.com/auth. После авторизации на странице сайта пользователь перенаправляется на http://site.com/auth.

Попробуем заменить http://site.com/auth на http://evil.com/. Получится ссылка http://site.com/login?redirectUrl=http://evil.com/. Если мы перейдем по этой ссылке после авторизации, а нас направляет на evil.com, значит, сайт имеет уязвимость Open Redirect.

Откуда появляется уязвимость?

Администраторы сайтов обычно либо не знают о такой уязвимости, либо не сверяют URL перенаправления с разрешенным белым списком, составленным заранее. Уязвимый код на сервере будет выглядеть приблизительно так (пример на PHP):

<?php
$redirect_url = $_GET['url'];
header("Location: " . $redirect_url);
?>

Тогда уязвимая ссылка будет такой: http://site.com/example.php?url=http://evil.com.

А вот аналог на Java — здесь тоже серверное перенаправление.

public class RedirectServlet extends HttpServlet {
  protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    String query = request.getQueryString();
    if (query.contains("url")) {
      String url = request.getParameter("url");
      response.sendRedirect(url);
    }
  }
}

Сервер получает запрос GET с параметром url и перенаправляет браузер на адрес, переданный в URL.

Что до перенаправления на стороне клиента, то оно может выглядеть как-то так:

<a href="http://bank.site.com/redirect?url=http://evil.com">Click here to log in</a>

Пользователь думает, что ссылка безопасная, так как начинается с bank.site.com. Однако после перехода он будет перенаправлен на похожий фишинговый сайт.

Как самому найти уязвимость?

  • Внимательно пройтись по всем ссылкам сайта и найти в них параметры перенаправления.
  • Как вариант, можно использовать перебор при помощи специальных программ.
  • Ввести в поисковую строку Google site:target.com inurl:redirectUrl=http.
  • Проанализировать, где может использоваться перенаправление. К примеру, редирект после авторизации.
  • Попробовать найти уязвимость с помощью различных известных трюков: target.com/?redirect_url=https://evil.com, target.com//evil.com. Другие трюки ты можешь посмотреть по ссылкам.

WWW

  • Random Robbie payloads
  • EdOverflow CheatSheet
  • Ak1t4 payloads
  • Cujanovic payloads

Эксплуатация уязвимости. Основные угрозы

Фишинг

Для атаки злоумышленник отправляет на почту письмо со ссылкой http://site.com/login?redirectUrl=http://evil.com/. Жертва видит доверенную ссылку и попадает по ней на страницу, идентичную оригинальному сайту. Далее человек вводит логин и пароль, которые злоумышленник и сохраняет с помощью скрипта.

С помощью этой уязвимости производился фишинг сайта Visa. Также уязвимость использовалась для фишинга банковских аккаунтов. Люди переходили по баннеру, в котором была уязвимая ссылка, и она отправляла их на фишинговый сайт.

Баннер с уязвимой ссылкой


Совмещение с другой уязвимостью

Другой вариант атаки сводится к отправке человека на сайт, содержащий эксплоит для браузера или CSRF. Также можно совместить Open Redirect с XSS, как это было сделано исследователем с сайтом google.com.

Способы совмещения могут быть самыми разными. Нужно просто сидеть и внимательно и упорно пробовать разные варианты.

Open Redirect для DDoS

На GitHub есть интересный скрипт, который использует открытое перенаправление для атак DDoS.

Скрипт UFONet

Автор описывает UFONet как ботнет для проведения Layer 7 DDoS атак (в учебных целях, конечно же).

Визуализация «Зомби» на карте

В интернете есть видео, где хакеры используют UFONet против реальных сайтов. Можешь скачать и порезвиться с ним на своем сайте. Но многого ожидать от него не стоит! 🙂

$ ls -l
$ git clone https://github.com/epsylon/ufonet.git

Открытая уязвимость в Google

В 2016 году исследователь обнаружил уязвимость в Google. Она заключается в том, что при переходе по ссылке с редиректом открывается обычная страница авторизации в Google. Ссылка выглядит примерно так:

https://accounts.google.com/ServiceLogin?continue=https%3A%2F%2Fappengine.google.com%2F_ah%2Fconflogin%3Fcontinue%3Dhttps%3A%2F%2Fevil.com%2F&service=ah
Авторизация в Google

Открывшего ее перебросит на сайт evil.com/_ah/conflogin/. Как это можно использовать? Разработчики Google ответили исследователю, что Open Redirect сам по себе не считается уязвимостью, и не стали закрывать эту дыру. Но злоумышленники взяли ее в оборот и активно используют. Рассмотрим подробнее их методы атаки.

Доставка ссылки

При точечной атаке обычно идет прямое взаимодействие с жертвой: под любым предлогом и любым способом ей передается уязвимая ссылка. При массовой атаке злоумышленники рассылают спам или размещают ссылку на сайтах, где жертва не сможет устоять и кликнет.

Один из вариантов такого спама — когда на почту (не Gmail) приходит письмо о том, что аккаунт связан с ящиком Gmail. В теле письма предлагается войти в аккаунт под разными предлогами.

Фишинговое письмо

Методы атак

Фишинг аккаунта Google

Пользователь после перехода по ссылке в письме попадает на страницу авторизации google.com. Там он вводит данные, но потом видит такое же окно авторизации с сообщением об ошибке в данных (хотя данные введены были верно). В чем тогда дело? Обычно человек думает, что опечатался или ввел не тот пароль.

Фишинговая страница

В реальности же он уже находится на сайте злоумышленника! Просто этот сайт отображает фейковое окно, неотличимое от логина в Google.

Данные, введенные в этом окне, будут отправлены скрипту на PHP, который сохранит их на сервере злоумышленника.

<?php
if (empty($_POST["username"])) {
  exit();
} else {
  $result = array(
    'username' => $_POST["username"],
    'password' => $_POST["password"]
  ); 
  echo json_encode($result); 
  $Login = $_POST['username'];
  $Pass = $_POST['password'];
  $log = fopen('accounts.php','a+');
  fwrite($log,"<br> $Login:$Pass \n");
  fclose($log);
}
?>

После нажатия на кнопку жертва перенаправляется на свою страницу с письмами, не подозревая, что она скомпрометирована. Хакер по ту сторону монитора радостно ухмыляется, увидев заветные данные.

Заражение вирусом

Точно таким же способом жертву после окна авторизации в google.com можно перенаправить на сайт с «обновлением» браузера, где человека просят скачать вирусный файл.

Обновление браузера с вирусом

После загрузки жертва перенаправляется на свою страницу с письмами и ничего не подозревает. Есть большой шанс, что пользователь порадуется «обновленному браузеру» и сам установит себе вирус.

Фишинг других аккаунтов (PayPal, Amazon, Vkontakte и прочие)

После окна авторизации в google.com жертва попадает на страницу «своей» почты. Однако все последние письма — от определенного сайта, который настойчиво просит войти в аккаунт под любым предлогом.

Фишинг аккаунтов PayPal

На самом деле это фейковая почта, муляж, в котором не работает ничего, кроме открытия письма. В самом письме содержится ссылка на фишинговый сайт с замаскированным доменом. К примеру, paypal.login-com.com. Невнимательная жертва в шоке переходит по ней на сайт злоумышленника и отдает ему свои данные.

Итог

Уязвимость Open Redirect — ошибка разработчиков сайта, которая позволяет злоумышленникам незаметно перенаправлять пользователей куда угодно и подсовывать им что угодно. Чтобы ее избежать, необходимо как минимум уведомлять пользователя о перенаправлении.

Интернет кишит уязвимостями. Плохие русские (и не только русские) хакеры не спят и зарабатывают, как могут, воруя чужие данные. В то время как товарищи в белых шляпах получают свои тысячи долларов, находя подобные уязвимости в программах Bug Bounty.

В общем, будь начеку, проверяй URL в адресной строке, никуда не логинься по ссылкам из почты и обращай внимание, если окно авторизации вдруг возникло из ниоткуда или выглядит хоть сколько-нибудь подозрительно. Предупреди о такой возможности менее подкованных друзей и родственников.

Читайте ещё больше платных статей бесплатно: https://t.me/hacker_frei


Report Page