• [ Регистрация ]Открытая и бесплатная
  • Tg admin@ALPHV_Admin (обязательно подтверждение в ЛС форума)

Кликджекинг. Деаноним любого пользователя

admin

#root
Администратор
Регистрация
20.01.2011
Сообщения
7,665
Розыгрыши
0
Реакции
135
В этой статье мы расскажем об использовании техники социального фишинга под названием кликджекинг, с целью деанонимизации любого человека.
В этой статье мы продолжим расширять ваш кругозор и рассмотрим технику социального фишинга под названием кликджекинг, целью которого является деанонимизации любого человека.
В качестве примера мы будем изучать атаку на аккаунт VK и наглядно рассмотрим, как именно мы, хакеры, можем узнать идентификатор пользователя.
Это очень опасный вид атаки, который сложно предотвратить, и попасться на него может каждый.​
ЧТО ТАКОЕ КЛИКДЖЕКИНГ

Кликджекинг — это механизм обмана, связанный с размещением на сайте невидимых элементов, с которыми пользователь может взаимодействовать, даже не подозревая этого. Например, создается кнопка и в невидимом слое накладывается поверх другой — видимой. Допустим, что жертва хочет посмотреть фильм на сайте, жмет Play, а попутно еще случайно дает «согласие на обработку персональных данных». Найти такие невидимые элементы можно, только заглянув в код сайта.
Бывает еще и «курсорджекинг» — это незаметное перемещение курсора мыши, чтобы выполнить те или иные действия на странице. Перемещаться вместе с курсором может и какой‑то элемент.
Далее я покажу, как любой из вас может добавить на страницу виджет «ВКонтакте», сделать его невидимым и подложить ничего не подозревающему пользователю.
Погнали!
Дизайн сайта

Здесь мы можем нафантазировать всё, что душе угодно. Социальный фишинг — ничто без социальной инженерии, поэтому нам потребуется схема введения в заблуждение, под которую уже будет подгоняться содержимое сайта.

  • []Для примера возьмем пустой шаблон:
<!DOCTYPE html> <!-- Объявление формата документа -->
<html>
<head> <!-- Техническая информация о документе -->
<meta charset="UTF-8"> <!-- Определение кодировки символов -->
<title>...</title> <!-- Заголовок документа -->
<link rel="stylesheet" type="text/css" href="style.css"> <!--
Подключение внешней таблицы стилей -->
<script src="script.js"></script> <!-- Подключение сценариев -->
</head>
<body> <!-- Основная часть документа -->
</body>
</html>
Авторизация VK

Теперь на сайт добавляется возможность авторизоваться через VK. Для этого есть официальный API, к нему идет Для просмотра ссылки Войди или Зарегистрируйся.

  • []Если вкратце, то достаточно добавить вот этот скрипт в секцию head:
<script src="https://vk.com/js/api/openapi.js?169" type="text/javascript"></script>

  • []И вот это — в body:
<div id="vk_auth"></div>
<script type="text/javascript"> window.onload = function () { VK.init({apiId:1111111});
VK.Widgets.Auth('vk_auth', {});
}
</script>

  • []Параметру apiId нужно дать значение, которое находится в документации и есть в разделе «Код виджета для вставки на сайте»:
image1.jpeg

На скрине замазан сам идентификатор.​

  • []Теперь на сайте должна появиться такая кнопка:
image2.png

У нас есть широкий выбор вариантов того, как переправлять себе данные об авторизованных посетителях. На стороне сервера для этого может использоваться база данных или же простой текстовый файл.
Как сказано в документации, после авторизации метод VK.Widgets.Auth возвращает данные о пользователе в виде GET-параметров URL при использовании authUrl или в виде параметров функции при использовании onAuth. Возвращаются следующие поля:

  • []uid (integer) — идентификатор пользователя;
    []first_name (string) — имя;
    []last_name (string) — фамилия;
    []photo (string) — URL фотографии профиля пользователя шириной 200 px;
    []photo_rec (string) — URL фотографии профиля пользователя шириной 50 px;
    []hash (string) — служебный параметр, необходимый для проверки авторизации на удаленной стороне.
Для проверки авторизации можно использовать полученный параметр hash, сравнивая его со значением функции MD5 от app_id + user_id + secret_key. Например:
md5(667481942537fTanpCrNSeuGPbA4ENCo)
Как настраивать этот виджет, есть многочисленные инструкции, здесь никаких секретов, разобраться под силу каждому. Так что идем дальше.​
Настройка видимости

Обычный веб‑разработчик на этом этапе бы и остановился, но у нас цель иная - нужно сделать кнопку авторизации невидимой и вставить поверх нее какое‑нибудь привлекательное изображение, чтобы пользователь прошел авторизацию, не заметив этого. Например, можно поставить поверх какую‑то другую кнопку.

  • []Если в любом браузере выбрать «Просмотр кода» и навести курсор мыши на кнопку входа в VK, а затем щелкнуть правой кнопкой, то можно найти такой абзац:
image3.jpeg

На скриншоте замазана часть текста, которой на этом этапе не будет

  • []Теперь в окне CSS можно добавить opacity : 0.0. Кнопка станет невидимой:
image4.jpeg


  • []Код абзаца уже со значением opacity : 0.0можно скопировать и получить код скрытой кнопки.
Именно в таком виде мы и добавляем кнопку на свой сайт вместо прежнего кода.
Выводы

Получается невидимая кнопка, и при нажатии на нее выполняется действие. Кстати, если просто скрыть этот элемент атрибутом hidden, то никакого результата не будет, ведь кнопка не только пропадет визуально, но и не будет получать событий вроде щелчка кнопкой мыши.
Это, по нашему мнению, крайне эффективный способ деанонимизации. Пользователя достаточно просто направить на страницу. Что может быть проще? Такое простое действие позволит нам получить его идентификатор VK и некоторые другие данные. Работает же такая схема практически незаметно для обывателя.
Защититься от такого способа крайне сложно. Можно разве что поискать в исходнике подозрительного сайта слово opacity, но вряд ли кто‑то будет делать это на каждой посещаемой странице.
 
Activity
So far there's no one here
Сверху Снизу