iOS UIActivity Sharing
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Починаючи з iOS 6, сторонні додатки отримали можливість ділитися даними такими як текст, URL-адреси або зображення, використовуючи механізми, такі як AirDrop, як зазначено в Посібнику з міждодаткового зв'язку від Apple. Ця функція проявляється через системний лист активності обміну, який з'являється при взаємодії з кнопкою "Поділитися".
Вичерпний перелік усіх вбудованих варіантів обміну доступний за посиланням UIActivity.ActivityType. Розробники можуть вирішити виключити певні варіанти обміну, якщо вважають їх непридатними для свого додатку.
Слід звернути увагу на:
Природу даних, що обмінюються.
Включення користувацьких активностей.
Виключення певних типів активностей.
Обмін здійснюється через створення UIActivityViewController
, до якого передаються елементи, призначені для обміну. Це досягається шляхом виклику:
Розробники повинні уважно перевірити UIActivityViewController
на наявність активностей та користувацьких активностей, з якими він ініціалізується, а також будь-яких вказаних excludedActivityTypes
.
Наступні аспекти є критично важливими при отриманні даних:
Оголошення кастомних типів документів.
Визначення типів документів, які може відкривати додаток.
Перевірка цілісності отриманих даних.
Без доступу до вихідного коду, можна все ще перевірити Info.plist
на наявність ключів, таких як UTExportedTypeDeclarations
, UTImportedTypeDeclarations
та CFBundleDocumentTypes
, щоб зрозуміти, які типи документів може обробляти та оголошувати додаток.
Стисла інструкція щодо цих ключів доступна на Stackoverflow, підкреслюючи важливість визначення та імпортування UTI для системного визнання та асоціювання типів документів з вашим додатком для інтеграції в діалозі "Відкрити з...".
Щоб протестувати відправку активностей, можна:
Підключитися до методу init(activityItems:applicationActivities:)
, щоб захопити елементи та активності, які передаються.
Визначити виключені активності, перехопивши властивість excludedActivityTypes
.
Для отримання елементів це включає:
Поділитися файлом з додатком з іншого джерела (наприклад, AirDrop, електронна пошта), що викликає діалог "Відкрити з...".
Підключити application:openURL:options:
серед інших методів, виявлених під час статичного аналізу, щоб спостерігати за реакцією додатка.
Використовувати неправильно сформовані файли або техніки фуззингу для оцінки надійності додатка.
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)