iOS Universal Links
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)
유니버설 링크는 사용자가 Safari 리디렉션을 우회하여 앱에서 직접 콘텐츠를 열 수 있도록 하여 매끄러운 리디렉션 경험을 제공합니다. 이러한 링크는 고유하고 안전하며, 다른 앱에서 주장할 수 없습니다. 이는 웹사이트의 루트 디렉토리에 apple-app-site-association
JSON 파일을 호스팅하여 웹사이트와 앱 간의 검증 가능한 링크를 설정함으로써 보장됩니다. 앱이 설치되지 않은 경우 Safari가 사용자에게 웹페이지로 안내하여 앱의 존재를 유지합니다.
침투 테스터에게 apple-app-site-association
파일은 민감한 경로를 드러낼 수 있기 때문에 특히 관심이 있습니다. 여기에는 출시되지 않은 기능과 관련된 경로가 포함될 수 있습니다.
개발자는 Xcode의 Capabilities 탭에서 연관 도메인을 구성하거나 .entitlements
파일을 검사하여 유니버설 링크를 활성화합니다. 각 도메인은 applinks:
로 접두사가 붙습니다. 예를 들어, 텔레그램의 구성은 다음과 같이 나타날 수 있습니다:
더 포괄적인 통찰력을 원하시면 보관된 Apple Developer Documentation을 참조하세요.
컴파일된 애플리케이션을 사용하는 경우, 이 가이드에 설명된 대로 권한을 추출할 수 있습니다.
apple-app-site-association
파일은 권한에 지정된 도메인을 사용하여 서버에서 가져와야 합니다. 파일이 https://<domain>/apple-app-site-association
에서 HTTPS를 통해 직접 접근 가능해야 합니다. Apple App Site Association (AASA) Validator와 같은 도구가 이 과정에 도움이 될 수 있습니다.
앱은 유니버설 링크를 올바르게 처리하기 위해 특정 메서드를 구현해야 합니다. 주목해야 할 주요 메서드는 application:continueUserActivity:restorationHandler:
입니다. 처리되는 URL의 스킴이 HTTP 또는 HTTPS여야 하며, 다른 스킴은 지원되지 않습니다.
유니버설 링크가 앱을 열면, NSUserActivity
객체가 URL과 함께 앱에 전달됩니다. 이 URL을 처리하기 전에 보안 위험을 방지하기 위해 이를 검증하고 정리하는 것이 필수적입니다. 다음은 이 과정을 보여주는 Swift 예제입니다:
URLs는 특히 매개변수를 포함하는 경우 잠재적인 스푸핑이나 잘못된 데이터로부터 보호하기 위해 신중하게 구문 분석되고 검증되어야 합니다. NSURLComponents
API는 아래에 설명된 바와 같이 이 목적에 유용합니다:
Through diligent configuration and validation, developers can ensure that universal links enhance user experience while maintaining security and privacy standards.
GetUniversal.link: 앱의 Universal Links 및 AASA 파일의 테스트와 관리를 간소화하는 데 도움을 줍니다. 도메인을 입력하여 AASA 파일의 무결성을 확인하거나 사용자 정의 대시보드를 사용하여 링크 동작을 쉽게 테스트할 수 있습니다. 이 도구는 Apple이 다음에 AASA 파일을 인덱싱할 시기를 결정하는 데도 도움을 줍니다.
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)