5.9 KiB
Udostępnianie UIActivity w systemie iOS
Dowiedz się, jak hakować AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)!
Inne sposoby wsparcia HackTricks:
- Jeśli chcesz zobaczyć swoją firmę reklamowaną w HackTricks lub pobrać HackTricks w formacie PDF, sprawdź PLAN SUBSKRYPCJI!
- Zdobądź oficjalne gadżety PEASS & HackTricks
- Odkryj Rodzinę PEASS, naszą kolekcję ekskluzywnych NFT
- Dołącz do 💬 grupy Discord lub grupy telegramowej lub śledź nas na Twitterze 🐦 @carlospolopm.
- Podziel się swoimi sztuczkami hakerskimi, przesyłając PR-y do HackTricks i HackTricks Cloud github repos.
Proste udostępnianie UIActivity
Od wersji iOS 6 aplikacje innych firm mogą udostępniać dane, takie jak tekst, adresy URL lub obrazy, za pomocą mechanizmów takich jak AirDrop, jak opisano w przewodniku dotyczącym komunikacji między aplikacjami firmy Apple. Ta funkcja manifestuje się poprzez ogólnodostępne okno aktywności udostępniania, które pojawia się po interakcji z przyciskiem "Udostępnij".
Pełne wyliczenie wszystkich wbudowanych opcji udostępniania jest dostępne pod adresem UIActivity.ActivityType. Deweloperzy mogą zdecydować się wykluczyć określone opcje udostępniania, jeśli uważają je za nieodpowiednie dla swojej aplikacji.
Jak udostępnić dane
Należy zwrócić uwagę na:
- Charakter udostępnianych danych.
- Dodanie niestandardowych aktywności.
- Wykluczenie określonych typów aktywności.
Udostępnianie jest ułatwione poprzez utworzenie instancji UIActivityViewController
, do której przekazywane są elementy przeznaczone do udostępnienia. Można to osiągnąć, wywołując:
$ rabin2 -zq Telegram\ X.app/Telegram\ X | grep -i activityItems
0x1000df034 45 44 initWithActivityItems:applicationActivities:
Deweloperzy powinni dokładnie przeanalizować UIActivityViewController
w celu sprawdzenia aktywności i niestandardowych aktywności, z którymi jest zainicjowany, oraz wszelkich określonych excludedActivityTypes
.
Jak otrzymać dane
Następujące aspekty są kluczowe podczas odbierania danych:
- Deklaracja niestandardowych typów dokumentów.
- Określenie typów dokumentów, które aplikacja może otworzyć.
- Weryfikacja integralności otrzymanych danych.
Bez dostępu do kodu źródłowego, można nadal sprawdzić plik Info.plist
pod kątem kluczy takich jak UTExportedTypeDeclarations
, UTImportedTypeDeclarations
i CFBundleDocumentTypes
, aby zrozumieć rodzaje dokumentów, które aplikacja może obsługiwać i deklarować.
Zwięzły przewodnik dotyczący tych kluczy jest dostępny na Stackoverflow, podkreślając znaczenie definiowania i importowania UTI dla rozpoznawania na poziomie systemu oraz łączenia typów dokumentów z aplikacją w dialogu "Otwórz za pomocą".
Dynamiczne podejście testowe
Aby przetestować wysyłanie aktywności, można:
- Podłączyć się do metody
init(activityItems:applicationActivities:)
, aby przechwycić udostępniane elementy i aktywności. - Zidentyfikować wykluczone aktywności, przechwytując właściwość
excludedActivityTypes
.
W przypadku odbierania elementów wymaga to:
- Udostępnienia pliku aplikacji z innego źródła (np. AirDrop, e-mail), co spowoduje wyświetlenie dialogu "Otwórz za pomocą...".
- Podłączenia metody
application:openURL:options:
oraz innych zidentyfikowanych metod podczas analizy statycznej, aby obserwować reakcję aplikacji. - Wykorzystania uszkodzonych plików lub technik fuzzingowych w celu oceny odporności aplikacji.
Odwołania
Naucz się hakować AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)!
Inne sposoby wsparcia HackTricks:
- Jeśli chcesz zobaczyć swoją firmę reklamowaną w HackTricks lub pobrać HackTricks w formacie PDF, sprawdź PLAN SUBSKRYPCJI!
- Zdobądź oficjalne gadżety PEASS & HackTricks
- Odkryj Rodzinę PEASS, naszą kolekcję ekskluzywnych NFT
- Dołącz do 💬 grupy Discord lub grupy telegramowej lub śledź nas na Twitterze 🐦 @carlospolopm.
- Podziel się swoimi sztuczkami hakerskimi, przesyłając PR-y do HackTricks i HackTricks Cloud github repos.