This page has been robot translated, sorry for typos if any. Original content here.

Будь-сайт може отримати інформацію про те, в яких популярних сервісах ви авторизовані

Розробник Робін Лінус на своїй сторінці на GitHub Pages (візит за наступним посиланням небезпечний і його не рекомендується виконувати з робочого місця, так як крім видимої частини сервісів сторінка перевіряє, залягання ви на сайтах для дорослих, а це залишиться в логах файрволла як спроба переходу ) продемонстрував , як сайти можуть знімати з вас «медійний відбиток», тобто вести облік того, в яких популярних сервісах залягання відвідувачі навіть без будь-якої авторизації на відвідуваною сторінці.

Для автора публікації «медійний відбиток» виглядає наступним чином і є абсолютно вірним:

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

І це дуже неприємно.

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

В чому суть

Для початку автор замітки пояснює, як відбувається процедура перенаправлення на вікно авторизації.

Якщо ми перейдемо по посиланню https://www.facebook.com/bookmarks/pages в інкогніто-режимі, то нас автоматично перенаправить на екран авторизації за адресою:

  https://www.facebook.com/login.php?next=https%3A%2F%2Fwww.facebook.com%2Fbookmarks%2Fpages 

Зверніть увагу на другу частину посилання виду:

  https% 3A% 2F% 2Fwww.facebook.com% 2Fbookmarks% 2Fpages 

Це URL, на який нас поверне після того, як ми пройдемо процедуру авторизації на Facebook. Але якщо ми використовуємо цей URL для перенаправлення на сторінку авторизації, коли ми вже авторизовані на сайті, то ми відразу потрапимо на bookmarks / pages.

Ще раз:

  • Якщо ми не залогінені і переходимо по https% 3A% 2F% 2Fwww.facebook.com% 2Fbookmarks% 2Fpages, то ми потрапляємо на вікно авторизації.
  • Якщо ми залягання, то ми з цього ж лінку потрапимо відразу на https://www.facebook.com/bookmarks/pages.

Начебто, все логічно.

Політика великих ресурсів, таких як Facebook, не дозволяє отримувати дані самого запиту, тому що з'єднання відбувається по HTTPS. Однак, ми можемо отримати будь-яке зображення з домену, якщо вказати посилання на нього в login.php? Next =. Звичайно, фотки з FB так витягнути не вийде, тому що майже всі зображення соціальна мережа зберігає за адресою fbcdn.net, однак, можна «постукати» на лого Facebook - favicon.ico:

  https://www.facebook.com/login.php?next=https%3A%2F%2Fwww.facebook.com%2Ffavicon.ico 

А на самому сайті замаскувати це через img-тег як:

  <Img src = "https://www.facebook.com/login.php?next=https%3A%2F%2Fwww.facebook.com%2Ffavicon.ico"> 

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

Якщо вище ви побачили ось такий значок FB ( Любой сайт может получить информацию о том, в каких популярных сервисах вы авторизированы ), Вітаю, ми тільки що переконалися, що ви залягання в Facebook (перевірте). Якщо ви нічого не побачили або зображення занадто прогрузити, повернувши відповідний значок ( Любой сайт может получить информацию о том, в каких популярных сервисах вы авторизированы ), То, відповідно, в Facebook ви не залогінені.

Фінальна експлуатація даної уразливості виглядає наступним чином:

  <Img onload = "alert ( 'logged in to fb')" onerror = "alert ( 'not logged in to fb')" src = "https://www.facebook.com/login.php?next=https% 3A% 2F% 2Fwww.facebook.com% 2Ffavicon.ico "> 

За допомогою цих нехитрих маніпуляцій з іконками можна збирати інформацію про те, якими сервісами користується аудиторія сайту без її відома. Даний механізм працює майже для всіх основних веб-сервісів, так як всі вони зберігають свої іконки на основному домені.

Цю вразливість можна використовувати як один з етапів інших типів атак, таких як ClickJacking або ProfileJacking .

реакція сервісів

Проблема отримання доступу до інформації про те, якими іншими сервісами користується людина, відома давно, але більшістю компаній ігнорується. Ось які відповіді отримав на свої багрепорти Робін від ряду найбільших сервісів і соціальних платформ.

Facebook:

Дякую за ваше звернення. Це питання обговорювалося з групою, що відповідає за безпеку в Facebook і дана помилка не може брати участь в bug bounty-програмою. Вона не може бути застосована до конкретного користувача Facebook. Можливість дізнатися, де авторизований користувач, який увійшов на сайт, не представляє будь-якої загрози безпеці. У будь-якому випадку, ми оцінили ваш репорт і з нетерпінням чекаємо від вас інших повідомлень про помилки.

Twitter:

Спасибі за ваш репорт. Звичайно, це виглядає цікаво, але я не бачу, як ця проблема може становити загрозу для безпеки Twitter і його користувачів. Так що, боюся, що дане питання можна вважати закритим і претендувати на участь в bug bounty-програмі він не може. Дякуємо Вам за тривогу про безпеку Twitter.

Yahoo:

Дякуємо Вам за звернення. Це відома проблема, про яку вже згадував емерит Гроссман . Ми подумаємо, як в майбутньому розв'язати цю проблему.

Square:

Дякуємо за звернення. Ми прийшли до висновку, що це питання представляє мінімальний ризик і тому ніяких змін в код для його вирішення вноситися не буде.

Dropbox:

Дякуємо! Ми врахуємо цю загрозу.

Власне, позиція більшості сервісів ясна - якщо уразливість не приводить до крадіжки персональних даних / даних облікового запису / не дає доступу до будь-якої категорії даних, то це і не вразливість.

FIX

В Опері рятує настройка блокування куків сторонніх сайтів: https://imgd.ru/image/uchm, а при її відключенні «все стає явним».

Via habrahabr.ru/post/312636/