iOS UIActivity Sharing

iOS UIActivity Sharing

Вивчайте хакінг AWS від нуля до героя з htARTE (HackTricks AWS Red Team Expert)!

Інші способи підтримки HackTricks:

UIActivity Sharing Simplified

З iOS 6 і пізніше, сторонні додатки можуть поділитися даними такими як текст, URL-адреси або зображення за допомогою механізмів, таких як AirDrop, як описано в керівництві з міждодаткового зв'язку від Apple. Ця функція виявляється через системно широко використовуваний аркуш активності для обміну, який з'являється при взаємодії з кнопкою "Поділитися".

Повний перелік всіх вбудованих опцій обміну доступний за посиланням UIActivity.ActivityType. Розробники можуть виключити певні опції обміну, якщо вони вважають їх непридатними для свого додатку.

Як поділитися даними

Увага повинна бути зосереджена на:

  • Характері даних, які обмінюються.

  • Включенні власних активностей.

  • Виключенні певних типів активностей.

Обмін здійснюється за допомогою створення UIActivityViewController, до якого передаються елементи, призначені для обміну. Це досягається за допомогою виклику:

$ rabin2 -zq Telegram\ X.app/Telegram\ X | grep -i activityItems
0x1000df034 45 44 initWithActivityItems:applicationActivities:

Розробники повинні ретельно перевірити UIActivityViewController для дій та власних дій, з якими він ініціалізується, а також будь-які вказані excludedActivityTypes.

Як отримати дані

Наступні аспекти є критичними при отриманні даних:

  • Оголошення власних типів документів.

  • Вказівка типів документів, які додаток може відкривати.

  • Перевірка цілісності отриманих даних.

Без доступу до вихідного коду можна все ще перевірити Info.plist на ключі, такі як UTExportedTypeDeclarations, UTImportedTypeDeclarations та CFBundleDocumentTypes, щоб зрозуміти типи документів, які додаток може обробляти та оголошувати.

Короткий посібник з цими ключами доступний на Stackoverflow, підкреслюючи важливість визначення та імпортування UTIs для системного визнання та асоціювання типів документів з вашим додатком для інтеграції в діалог "Відкрити за допомогою".

Динамічний підхід до тестування

Для тестування відправлення дій можна:

  • Підключитися до методу init(activityItems:applicationActivities:), щоб захопити елементи та дії, які діляться.

  • Визначити виключені дії, перехоплюючи властивість excludedActivityTypes.

Для отримання елементів це включає:

  • Поділитися файлом з додатком з іншого джерела (наприклад, AirDrop, електронна пошта), що викликає діалог "Відкрити за допомогою...".

  • Підключення application:openURL:options: серед інших методів, виявлених під час статичного аналізу, для спостереження реакції додатка.

  • Використання пошкоджених файлів або технік розгублення для оцінки стійкості додатка.

Посилання

Вивчайте хакінг AWS від нуля до героя з htARTE (HackTricks AWS Red Team Expert)!

Інші способи підтримки HackTricks:

Last updated