<summary><strong>Dowiedz się, jak hakować AWS od zera do bohatera z</strong><ahref="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
* Jeśli chcesz zobaczyć swoją **firmę reklamowaną w HackTricks** lub **pobrać HackTricks w formacie PDF**, sprawdź [**PLAN SUBSKRYPCJI**](https://github.com/sponsors/carlospolop)!
* **Dołącz do** 💬 [**grupy Discord**](https://discord.gg/hRep4RUj7f) lub [**grupy telegramowej**](https://t.me/peass) lub **śledź** nas na **Twitterze** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Podziel się swoimi sztuczkami hakerskimi, przesyłając PR-y do** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
To jest podsumowanie związanych informacji z [https://mas.owasp.org/MASTG/tests/ios/MASVS-PLATFORM/MASTG-TEST-0075/](https://mas.owasp.org/MASTG/tests/ios/MASVS-PLATFORM/MASTG-TEST-0075/)
Niestandardowe schematy URL umożliwiają aplikacjom komunikację za pomocą niestandardowego protokołu, jak szczegółowo opisano w [Dokumentacji dla programistów Apple](https://developer.apple.com/library/content/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/Inter-AppCommunication/Inter-AppCommunication.html#//apple_ref/doc/uid/TP40007072-CH6-SW1). Te schematy muszą być zadeklarowane przez aplikację, która następnie obsługuje przychodzące adresy URL zgodnie z tymi schematami. Ważne jest, aby **sprawdzać wszystkie parametry URL** i **odrzucić wszelkie nieprawidłowe adresy URL**, aby zapobiec atakom przez ten wektor.
Przykładem jest URI `myapp://hostname?data=123876123`, który wywołuje określoną akcję aplikacji. Zauważono podatność w aplikacji Skype Mobile, która umożliwiała nieautoryzowane akcje połączeń za pomocą protokołu `skype://`. Zarejestrowane schematy można znaleźć w pliku `Info.plist` aplikacji w sekcji `CFBundleURLTypes`. Złośliwe aplikacje mogą wykorzystać to, ponownie rejestrując adresy URL w celu przechwycenia poufnych informacji.
Od wersji iOS 9.0, aby sprawdzić, czy aplikacja jest dostępna, `canOpenURL:` wymaga zadeklarowania schematów URL w pliku `Info.plist` w sekcji `LSApplicationQueriesSchemes`. Ogranicza to schematy, które aplikacja może zapytać do 50, zwiększając prywatność poprzez zapobieganie wyliczaniu aplikacji.
Programiści powinni sprawdzić konkretne metody w kodzie źródłowym, aby zrozumieć konstrukcję i walidację ścieżki adresu URL, takie jak `application:didFinishLaunchingWithOptions:` i `application:openURL:options:`. Na przykład, Telegram korzysta z różnych metod otwierania adresów URL:
Metody takie jak `openURL:options:completionHandler:` są kluczowe do otwierania adresów URL w celu interakcji z innymi aplikacjami. Zidentyfikowanie użycia takich metod w kodzie źródłowym aplikacji jest kluczowe dla zrozumienia komunikacji zewnętrznej.
Metody obsługujące otwieranie adresów URL, takie jak `application:handleOpenURL:` i `openURL:`, które są przestarzałe, powinny być zidentyfikowane i przeanalizowane pod kątem implikacji dla bezpieczeństwa.
Fuzzowanie schematów URL może pomóc w identyfikacji błędów korupcji pamięci. Narzędzia takie jak [Frida](https://codeshare.frida.re/@dki/ios-url-scheme-fuzzing/) mogą zautomatyzować ten proces, otwierając adresy URL z różnymi ładunkami, aby monitorować ewentualne awarie, jak to zostało pokazane na przykładzie manipulacji adresami URL w aplikacji iGoat-Swift:
<summary><strong>Naucz się hakować AWS od zera do bohatera z</strong><ahref="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
* Jeśli chcesz zobaczyć swoją **firmę reklamowaną w HackTricks** lub **pobrać HackTricks w formacie PDF**, sprawdź [**PLAN SUBSKRYPCJI**](https://github.com/sponsors/carlospolop)!
* **Dołącz do** 💬 [**grupy Discord**](https://discord.gg/hRep4RUj7f) lub [**grupy telegramowej**](https://t.me/peass) lub **śledź** nas na **Twitterze** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Podziel się swoimi sztuczkami hakerskimi, przesyłając PR-y do** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repozytoriów github.